Новая сборка с MSBuild не включает новый класс - PullRequest
3 голосов
/ 16 декабря 2008

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

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

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

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

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

Ответы [ 4 ]

3 голосов
/ 16 декабря 2008

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

1 голос
/ 16 декабря 2008

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

1 голос
/ 16 декабря 2008

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

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

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

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

0 голосов
/ 16 декабря 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...