Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSBuild,如何从.csproj获取所有项目引用_Msbuild_Msbuild Task_Nswag - Fatal编程技术网

MSBuild,如何从.csproj获取所有项目引用

MSBuild,如何从.csproj获取所有项目引用,msbuild,msbuild-task,nswag,Msbuild,Msbuild Task,Nswag,在msbuild命令中是否有任何变量或属性可用于从.csproj获取所有项目引用 NSwag.exe webapi2swagger /assembly:@(GimmeAllReferencies?) /controller:Namespace.MyController /output:SwaggerFiles/MyControllerSwagger.json 编辑: 对不起,我的不精确。我有一个项目A,其中有对项目B、C、D的项目引用。我需要知道的是这个项目的DLL在哪里,以便在我的后构建任务

在msbuild命令中是否有任何变量或属性可用于从.csproj获取所有项目引用

NSwag.exe webapi2swagger /assembly:@(GimmeAllReferencies?) /controller:Namespace.MyController /output:SwaggerFiles/MyControllerSwagger.json
编辑: 对不起,我的不精确。我有一个项目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>

(@(项目参考)收集项目A中的所有项目参考(B、C、D)

($(TargetPath)是指向带有项目A的dll的路径)

我的问题是:这个解决方案是会再次构建这些dll,还是会跳过构建过程,因为它们已经构建好了

根据我在代码中使用的问题
Targets=“GetTargetPath”


如何实际检查此生成操作是否不再执行?

对于当前版本,您可以在程序集路径中定义通配符,如:

../**/bin/$(Configuration)/*.dll

您还应该添加msbuild命令(例如exec)并说明应该包括哪些DLL…如果您的意思是希望显示
引用
项组的内容,那么只需添加一个目标即可