Новая сборка с MSBuild не включает новый класс

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

MSBuild.exe /m "C:\MyProject\MyProject.sln"

До сих пор это работало просто отлично. Однако сегодня я добавил класс в проект библиотеки классов, DLL которого загружается через отражение в моем приложении, и я не смог создать объект нового класса. Я посмотрел в отладчике типы, содержащиеся в загруженной мной DLL, и моего нового типа не было. Я получил те же результаты с отражателем.

Когда я наконец вернулся в IDE, щелкнул правой кнопкой мыши по проекту и выбрал «Перестроить», мой новый тип появился в Reflector.

Есть ли какой-то параметр или флаг командной строки, которые я могу установить в MSBuild, чтобы каждый раз регистрировались новые изменения?

15.12.2008 21:07:47
4 ОТВЕТА
РЕШЕНИЕ

Возможно, это звучит глупо, но вы уверены, что новый файл класса был сохранен? Перестройка обычно автоматически сохраняет все файлы, а MSBuild - нет.

3
15.12.2008 21:14:48
В этом случае также может быть, что файлы проекта не были сохранены.
Bert Huijben 18.12.2008 23:43:30
При компиляции из Visual Studio некоторые файлы открываются в редакторах, для c # и VB эти файлы компилируются из буферов редактора вместо файлов на диске. (Эти файлы могут не синхронизироваться с версией на диске при некоторых необычных условиях)
Bert Huijben 18.12.2008 23:45:40

Я обнаружил, что исторически MS IDE не всегда сохраняет файлы проектов и решений, когда вы просите об этом ... Это может иметь некоторое отношение к проблеме, но, возможно, нет.

однако, возможно, это так же просто, как это:

Попробуйте добавить / т: перестроить

MSBuild.exe / m "C: \ MyProject \ MyProject.sln" / t: перестроить

1
15.12.2008 21:11:50

Попробуйте указать «ReBuild» в вызове командной строки msbuild.

msbuild / t: перестроить / p: конфигурация = отладка

Сезон по вкусу.

0
15.12.2008 21:12:05

Это оказалось несохраненной проблемой файла. На самом деле это был не новый файл класса; этот файл был сохранен. Это был файл .csproj, который не был сохранен после того, как я добавил новый файл класса в IDE. Если бы я нажал «Сохранить все» или выделил проект и нажал «Сохранить», MSBuild работал бы просто отлично.

1
15.12.2008 21:20:08