0

管理されていないC++プロジェクトがあり、その出力を.NETプロジェクトの出力フォルダーにコピーする必要があります。

Visual Studio 2010では、マネージアセンブリを作成していないため、C++プロジェクトをプロジェクト参照として追加できません。

以下を.csprojファイルに手動で追加しようとしましたが、機能していないようです(たとえば、msbuildを実行している場合、.NETプロジェクトが最初にビルドされます)

<ItemGroup>
    <ProjectReference Include="pathtoproject\unmanaged.vcxproj">
        <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
        <Private>False</Private>
    </ProjectReference>
</ItemGroup>

このビルド依存関係を強制してコマンドラインビルドで機能させるにはどうすればよいですか?

4

3 に答える 3

2

したがって、質問で示した例は実際には正しいことがわかります。これにより、C++プロジェクトが最初にビルドされます。

私の問題は、.NETプロジェクトのMSBuildターゲットにフックして、C ++ dllをコピーしようとしていたことでした。これは、そのプロジェクトのビルドサイクルの早い段階で行っていました(BeforeBuildにフックしていました)。代わりに「BeforeCompile」ターゲットを使用すると、ビルドサイクルが十分に遅くなり、正しく機能するように見えます。

于 2013-02-05T04:03:24.747 に答える
1

両方のプロジェクトをソリューションに追加し、プロジェクトの依存関係を使用して、管理されていないプロジェクトが最初にビルドされることを確認します。コマンドラインからソリューションを構築できます。

プロジェクトの依存関係ダイアログ

于 2013-02-05T03:28:33.893 に答える
0

私はあなたの質問がこのスレッドで答えられたかもしれないと信じています:

C#プロジェクトによって呼び出されるアンマネージC ++プロジェクトへの参照を追加するにはどうすればよいですか?

SLaksの回答をご覧ください

于 2013-02-05T03:32:55.943 に答える