Visual Studio 2010 не выполняет задачу msbuild для решений в событиях сборки.Как это исправить? - PullRequest
4 голосов
/ 08 июля 2011

У меня один из проектов моего решения зависит от другого решения: кода, который не будет часто меняться.Чтобы исключить этот код из основного решения, я сослался на получившуюся il-merged dll и добавил следующий код в файл проекта:

<Target Name="BeforeBuild">
    <MsBuild Projects="$(PathToAnotherSolutionFile)" Properties="Configuration=$(Configuration)" Condition="!Exists($(AnotherSolutionDll))"/>
</Target>

В результате, внешнее решение создается только один раз при новой проверке.Это желаемое поведение, и оно работает как положено, если запускается из командной строки.Но если построить решение из Visual Studio, задача MsBuild по какой-то причине не выполняется.

Однако, это выполняется, если в «Проектах» поставить отдельный проект вместо решения.

Есть ли значимое объяснение этому поведению и есть ли способ его обойти?

1 Ответ

2 голосов
/ 11 июля 2011

Хорошо, вот обходной путь:

<Target Name="BeforeBuild">
    <Exec Command="$(MSBuildBinPath)\msbuild $(PathToAnotherSolutionFile) /p:Configuration=$(Configuration)" Condition="!Exists($(AnotherSolutionDll))"/>
</Target>

Это глупо, но работает.Но вопрос, почему он не работает, все еще остается открытым.

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