Visual Studio не восстанавливается после изменения файла содержимого
У меня есть проект unit test, который содержит несколько файлов XML для тестов, управляемых данными.
Для этих файлов установлено значение "Создать действие" Контент и Копировать, если новый или Копировать всегда.
По большей части это прекрасно работает. Однако, когда я меняю один из файлов данных без изменения какого-либо кода, Visual Studio не будет запускать действие сборки вообще, и никакие файлы XML не будут скопированы. Фактически, я запускаю свои модульные тесты со старым файлом данных.
Я могу запустить сборку вручную, но я хотел бы предотвратить такие ошибки, если это возможно. Есть ли способ заставить Visual Studio (2008) выполнять операцию копирования каждый раз, когда кто-то изменяет только файлы содержимого?
Чтобы уточнить:
XML файл находится внутри проекта unit test, а не в проекте производственного кода. У меня есть соответствующий атрибут [DeploymentItem]
для файла, установленного в запущенном тесте.
Ответы
Ответ 1
Это кажется простым ответом, поэтому, пожалуйста, простите меня, если вы уже это сделали. Однако я использовал эту проблему после редактирования источников данных текстовых файлов.
Чтобы исправить это, я должен был очистить проект после каждого изменения, которое вызывало раздражение в большом проекте, над которым я работал.
Это прекратилось, когда мне пришлось установить VS2008 на новую копию Windows, поэтому это может быть проблема конфигурации.
Ответ 2
Перед запуском тестов Visual Studio вызывает MSBuild в вашем проекте с целью сборки и тестирования. Если вы посмотрите на Microsoft.CSharp.targets(см. http://msdn.microsoft.com/en-us/library/ms164312.aspx), вы можете проследить, как файлы из Content ItemGroup будут скопированы как часть процесс взлома. AFAIK, они объявлены входы и выходы одной из подцелей Bulld, поэтому MSBuild должен действительно рассмотреть возможность их копирования, если их временные метки изменились.
Можете ли вы убедиться, что:
* сохраняются изменения в файлах
* вы используете NTFS
* когда вы запускаете сборку из cmd-строки msbuild, она все еще не перестраивается при изменении файла xml?
Visual Studios. Интеграция MSBuild довольно сломанна, она по-настоящему не делает простой вызов вызова командной строки MSBuild. (У него есть проблемы с кэшированием импорта и всевозможными сумасшедшими, неинтуитивными вещами).
Ответ 3
Я не знаю, поможет ли это в вашей ситуации, но обойти это. Я изменил действие Action моих файлов XML на Embedded Resource и, похоже, сделал трюк.