1

これと同じような問題が発生しています。

私は、VS 2008 ソリューションを持っています。これには、とりわけ次のものが含まれます: (簡単にするために名前を変更しました)

  • DLL A: ネイティブ C++、ビジネス ロジック DLL
  • DLL B: 名前空間が「Wrapper」の DLL A 用の C++/CLI ラッパー
  • EXE: (DLL B を参照する) AC# WinForms GUI EXE プロジェクト

EXE をビルドすると、VS で次のエラーが表示されます。

error CS0246: The type or namespace name 'Wrapper' could not be found (are you missing a using directive or an assembly reference?)

でも:

最初のリンクされた質問は、「コンパイラシンボルの重複定義」について言及していますが、その意味で何を探すべきかわかりません。

何を試すかについてのアイデアはありますか?

4

1 に答える 1

0

私はこれを理解したと思います。

背景: ビルドする前に、CMake を使用してソリューション全体を作成します。CMake を使用して、EXE の csproj ファイルを編集し、DLL B を含む正しい参照を指すようにします。

CMake を実行するたびに、csproj ファイルの ProjectReference ノードにある DLL B の静的に定義された GUID が、DLL B を出力する vcproj 用に新しく生成された GUID と同期しなくなります。この GUID の不一致により、ビルド時に DLL B が参照されません。 、参照のリストに表示され、関連する警告やエラーはありませんが。

これを発見した方法は、ビルド出力を見ることでした。csc.exe の呼び出しで、DLL B の「/reference」エントリがありませんでした。

ここで、これらの GUID の同期を維持する方法を見つける必要があります。

于 2013-03-14T17:23:36.377 に答える