Подтвердить что ты не робот

Visual Studio не восстанавливается после изменения файла содержимого

У меня есть проект unit test, который содержит несколько файлов XML для тестов, управляемых данными. Для этих файлов установлено значение "Создать действие" Контент и Копировать, если новый или Копировать всегда.

По большей части это прекрасно работает. Однако, когда я меняю один из файлов данных без изменения какого-либо кода, Visual Studio не будет запускать действие сборки вообще, и никакие файлы XML не будут скопированы. Фактически, я запускаю свои модульные тесты со старым файлом данных.

Я могу запустить сборку вручную, но я хотел бы предотвратить такие ошибки, если это возможно. Есть ли способ заставить Visual Studio (2008) выполнять операцию копирования каждый раз, когда кто-то изменяет только файлы содержимого?

Чтобы уточнить: XML файл находится внутри проекта unit test, а не в проекте производственного кода. У меня есть соответствующий атрибут [DeploymentItem] для файла, установленного в запущенном тесте.

4b9b3361

Ответ 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 и, похоже, сделал трюк.