Ich kämpfe seit langem mit diesem Problem.msbuild kopiert die Ausgabe des referenzierten nativen Projekts nicht nach C# project out dir
Das Setup:
- C# Projekt
- C++ Projekt
C# Projekt mit den folgenden Zeilen eine Referenz für das C++ Projekt hat:
<ProjectReference Include="projectB.vcxproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> <OutputItemType>Content</OutputItemType> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </ProjectReference>
Dies funktioniert aus dem Visual Studio. Dies funktioniert, wenn Devenv von der Befehlszeile verwendet wird. Bei der Verwendung von Msbuild von der Befehlszeile - die Ausgabedatei des C++ - Projekts wird nicht in das Ausgabeverzeichnis des C# -Projekts kopiert.
Ich konnte das mit Msbuild nicht beheben. Lesen Sie viel darüber, nichts hat funktioniert. Versuchte Debuggen mit Diag Ausführlichkeit - aber Protokolle von Msbuild und Visual-Studio sind sehr unterschiedlich ... Ich kann nicht zu Devenv verwenden, da die Build-Maschine kein gültiges Visual-Studio hat.
In msbuild Protokoll mit Diagnose Ausführlichkeit Ich sehe: Target "GetCopyToOutputDirectoryItems" skipped. Previously built successfully.
Dies ist, wo in der visual-studio log - es sieht anders aus - und tatsächlich funktioniert auf das Kopieren der referenzierten native Dateien in das Verzeichnis C# Ausgabeverzeichnis. ? Vielleicht etwas mit Bauauftrag im Zusammenhang ..
In msbuild log - ich sehe auch: Target "_CopyOutOfDateSourceItemsToOutputDirectoryAlways" skipped, due to false condition; ('@(_SourceItemsToCopyToOutputDirectoryAlways)' != '') was evaluated as ('' != '').
während in Visual-Studio-Build log ich dieses Ziel zu sehen ausgeführt (es kommt direkt nach GetCopyToOutputDirectoryItems Ziel)
Gibt es eine Dokumentation des Ziels 'BuiltProjectOutputGroup'? – yair