私はこれで長い時間苦労しています。msbuildは参照されたネイティブプロジェクトの出力をc#project outディレクトリにコピーしません
セットアップ:
<ProjectReference Include="projectB.vcxproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<OutputItemType>Content</OutputItemType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</ProjectReference>
この作品:
- C#プロジェクト
- C++プロジェクト
C#プロジェクトは、次の行を含むC++プロジェクトの参照を持っていますビジュアルスタジオと一緒に。 これは、コマンドラインからdevenvを使用する場合に機能します。 コマンドラインからmsbuildを使用する場合、C++プロジェクトの出力ファイルは、c#プロジェクトの出力ディレクトリにコピーされません。
msbuildを使用して修正できませんでした。それについて多くを読んで、何も働かなかった。 diag verbosityを使用してデバッグしようとしましたが、msbuildとvisual-studioのログは非常に異なっています... ビルドマシンには有効なビジュアルスタジオがないため、devenvを使用することはできません。私が見た診断冗長でMSBuildのログで
:
Target "GetCopyToOutputDirectoryItems" skipped. Previously built successfully.
ビジュアルスタジオ・ログにここにある - それは違って見える - と、実際にC#の出力ディレクトリを基準とネイティブファイルをコピーするに取り組んでいます。おそらく、 ビルド順序に関連何か..MSBuildのログで - 私も参照してください?
Target "_CopyOutOfDateSourceItemsToOutputDirectoryAlways" skipped, due to false condition; ('@(_SourceItemsToCopyToOutputDirectoryAlways)' != '') was evaluated as ('' != '').
を視覚スタジオのビルドログに私はこのターゲットが実行見ながら(それが正しいGetCopyToOutputDirectoryItemsターゲットの後に来る)
'BuiltProjectOutputGroup'ターゲットのドキュメントはありますか? – yair