2016-08-05 9 views
1

msbuildコマンドで.csprojからすべてのプロジェクト参照を取得するための変数またはプロパティがありますか?MSBuild、.csprojからすべてのプロジェクト参照を取得する方法

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

編集: 私の不正確さのために申し訳ありません。私はプロジェクトB、C、Dへのプロジェクト参照を持つプロジェクトAを持っています。私が知る必要があるのは、このプロジェクトの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を集める)プロジェクトAに)

($(TargetPathが)はへのパスですプロジェクトAのDLL)

私の質問は:このソリューションはこれらのDLLをもう一度ビルドするのか、ビルドプロセスをスキップするのですか?

+0

あなたも含まれるべきかのdllのMSBuildコマンド(例えばEXEC)や状態を追加する必要があります... –

+0

あなたが意味する場合'Reference' ItemGroupの内容を表示したいのですが、' 'を実行するターゲットを追加するのと同じくらい簡単です。 – stijn

答えて

0

this質問によると、私はTargets="GetTargetPath"を私のコードで使用しました。

このビルドアクションが再度実行されないかどうかを実際に確認する方法はありますか?現在のリリースで

0

、あなたのようなアセンブリのパスにワイルドカードを定義することができます。

../**/bin/$(Configuration)/*.dll 
関連する問題