「通常のユーザー」バージョンと「プロ」バージョンの 2 つのバージョンで、マネージ コード (主に C++/CLI) でツールを構築しています。
コア コードが 2 つのバージョン間で同一であるという事実は、結果のツールを単一のアセンブリ (DLL) としてパッケージ化する必要があり、共通の .cpp ファイルを含める必要がないため、少し問題を引き起こしました。ツールの 2 つのバージョンのプロジェクトのコード。共通コード用のプロジェクトとツールの各バージョン用のプロジェクトを用意し、ツール プロジェクトの各バージョンを共通コードに依存させ、必要に応じてリンクさせたいと思います。
アンマネージ C++ では、共通コードを静的ライブラリに配置し、ツールの両方のバージョンをそれにリンクすることでこれを行います。これを C++/CLI で動作させることができないようです。共通コードを DLL アセンブリにビルドすることを余儀なくされているようで、その結果、必要以上の DLL が作成されます。
要するに、1 つのプロジェクトで共通コードをビルドし、それを各最終製品プロジェクトにリンクして、共通コードを含む 2 つの 1 つの DLL アセンブリを生成する方法がわかりません。
私はおそらく何か間違ったことをしているのですが、ネットモジュールなどを使ってこれを行う方法を考え出そうとしましたが、うまくいきませんでした。最終的に、私がそれを機能させる唯一の方法は、機能する結果ではなく、共通コードアセンブリのビルド製品をリンクするようにリンカに指示することでしたが、私見のハックです。
とにかく、この問題をどのように解決すべきかについて誰か提案がありますか?
編集済み:生成されたアセンブリは 100% マネージド コードではなく、おそらく C++/CLI で生成されたアセンブリによく見られるように、マネージド コードとアンマネージド コードが混在しているという事実に言及すべきだったと思います...