2016-08-05 2 views
1

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

NSwag.exe webapi2swagger /assembly:@(GimmeAllReferencies?) /controller:Namespace.MyController /output:SwaggerFiles/MyControllerSwagger.json 

EDIT: Извините за мои неточности. У меня есть проект A, который имеет ссылки на проект B, C, D. Мне нужно знать, где DLL для этого проекта использовать их в моей задаче после сборки. Вот что у меня есть на данный момент:

<Target Name="AfterBuild"> 
<MSBuild Projects="@(ProjectReference)" Targets="Build" BuildInParallel="true"> 
    <Output TaskParameter="TargetOutputs" ItemName="OutputAssemblies" /> 
</MSBuild> 
<Exec Command="$(SolutionDir)Packages\NSwag.4.0.0\NSwag.exe webapi2swagger /assembly:@(OutputAssemblies,','),$(TargetPath) /controller:Controller1 /output:Swagger1.json" /> 
<Exec Command="$(SolutionDir)Packages\NSwag.4.0.0\NSwag.exe webapi2swagger /assembly:@(OutputAssemblies,','),$(TargetPath) /controller:Controller2 /output:Swagger2.json" /> 
<Exec Command="$(SolutionDir)Packages\NSwag.4.0.0\NSwag.exe webapi2swagger /assembly:@(OutputAssemblies,','),$(TargetPath) /controller:Conotrller3 /output:Swagger3.json" /></Target> 

(@ (ProjectReference) собрать все ссылки на проекты (B, C, D) в проекте А.)

($ (TargetPath) является путь к dll с проектом A)

Мой вопрос: будет ли это решение строить эти dll снова или он пропустит процесс сборки, потому что они уже были построены?

+0

Вы также должны добавить команду MSBuild (например EXEC) и состояния, что библиотеки должны быть включены ... –

+0

Если вы имеете в виду вы хотите получить содержимое отображаемой группы элементов «Reference», то это так же просто, как добавление цели, которая выполняет «<Текст сообщения =» @ (Ссылка) »/>' – stijn

ответ

0

Согласно this вопрос я использовал Targets="GetTargetPath" в моем коде.

Как я могу проверить, не работает ли это действие сборки?

0

С текущей версии, вы можете определить символы в сборке путей, таких как:

../**/bin/$(Configuration)/*.dll 
Смежные вопросы