1

私のプロジェクトでは

  • ネイティブ c++ dll プロジェクト (x64/ に出力)
  • c++/cli ラッパー (x64/ への出力)
  • いくつかの c# プロジェクト (projectName\bin\x64 に出力)

ビルド中に最初の dll が "x64/" にコピーされ、次にラッパーが "x64/" にコピーされます。最終段階でラッパー dll は「projectName\bin\x64」フォルダーにコピーされますが、元のネイティブ dll はコピーされません。

ネイティブ dll も最終フォルダーに移動する必要があるため、アプリケーションを実行できます。その方法を教えてください。

「ネイティブ dll」を依存関係として追加しようとしましたが、VS はそれができないと言います。

updまた、自分で dll をコピーしてデバッグすると、ネイティブ dll に移動できず、「ブレークポイントは現在ヒットしません。このドキュメントのシンボルが読み込まれていません」というエラーが表示されます。したがって、この問題は関連していると思います。ネイティブ dll をコピーしてデバッグできるようにしたい。

updこの回答は、C# から Unmanaged DLL をデバッグできませんをデバッグするのに役立ちましたが、自分で dll をコピーする必要があります。プロジェクトをビルドするたびに、「ネイティブ dll」プロジェクトが古くなっているという警告が表示されるため、奇妙なことです。

4

1 に答える 1

3

私の知る限り、ビルド後の手順を使用する必要があります。次にいくつかの例を示します。

msbuildAfterBuildターゲットから特定のファイルを除外するにはどうすればよいですか

<Target Name="AfterBuild">
    <ItemGroup>
      <BinFiles Include="bin\$(ConfigurationName)\**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(BinFiles)" DestinationFiles="@(BinFiles->'$(ProjectDir)\relativePathToDirectory" />
  </Target>
于 2013-03-05T15:01:51.503 に答える