Gibt es irgendeine Variable oder Eigenschaft, die ich in Msbuild-Befehl verwenden könnte, um alle Projektreferenzen von .csproj zu erhalten?MSBuild, wie bekomme ich alle Projektreferenzen von .csproj
NSwag.exe webapi2swagger /assembly:@(GimmeAllReferencies?) /controller:Namespace.MyController /output:SwaggerFiles/MyControllerSwagger.json
EDIT: Sorry für meine Unschärfen. Ich habe Projekt A, das Projektreferenzen zu Projekt B, C, D hat. Was ich wissen muss, ist, wo sind dlls zu diesem Projekt, um sie in meiner Nachbauaufgabe zu verwenden. Hier ist, was ich jetzt habe:
<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) sammeln alle Projektreferenzen (B, C, D) in Projekt A)
($ (TargetPath) ist Weg Die DLL mit Projekt A)
Meine Frage ist: Wird diese Lösung diese DLL wieder bauen oder wird Build-Prozess überspringen, weil sie bereits gebaut wurden?
Sie sollten auch die msbuild Befehl (zB exec) hinzufügen und angeben, welche DLLs enthalten sein sollten ... –
Wenn Sie meinen, Wenn Sie möchten, dass der Inhalt der ItemGroup 'Reference' angezeigt wird, können Sie einfach ein Ziel hinzufügen, das' 'enthält –
stijn