0

同じタイプの質問に回答するために同じキャッチフレーズが使用されていることは知っていますが、そこにある回答は役に立ちませんでした。私のソリューションには、いくつかのプロジェクトがあります。あるプロジェクトでは、Prj.Infrastructure にはいくつかのインターフェイス IA、IB、IC、ID、および IE があり、これらはプロジェクト Prj.Bridge の C++/CLI クラスによって実装され、Prj.UI のいくつかの winform でも使用されます。

各プロジェクトを個別にビルドすると問題なくビルドされますが、ソリューション全体をビルドすると、何らかの理由でインターフェイス IA、IB、および IC が失われ、Prj.UI はそれを見つけることができず、次のようなエラーが発生します

エラー 6 タイプまたは名前空間名 'IA' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) D:\svnroot\branches\blah1\blah2\blah3\blah4\blah5\blah6\INVS.cs

INVS が IA を実装していた場所。

私は次のことを試しました:私はすでに何回も掃除して構築しました。ソリューションのすべてのプロジェクトをチェックしましたが、クライアント プロファイルのチェック ボックスがオフになっています。Resharper を削除しました (Resharper は参照されているプロジェクトを問題なく認識していたので、試してみる価値があると思いました)。参照と using ステートメントを削除して再度追加しました。また、他のコンピューターでブランチをチェックアウトしようとしましたが、それでも失敗しました。

これで私を助けてください、私は今2日間立ち往生しています。

編集:.Net 3.5用

4

2 に答える 2

0

ごめんなさい。私の同僚がビルド スクリプトにレジストリを追加したことがわかりました (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\AssemblyFolders の下にキーを追加しました) 別のビルド フォルダーを指している (別のソース管理チェックアウトから)。 、そこからデータを取得していて、新しく追加されたインターフェースを認識していませんでした。問題が発生して申し訳ありません。この問題の可能性をもう 1 つ追加する可能性があります。レジストリを確認してください。これは、Visual Studio がソリューション全体のビルド中にビルド情報を取得する場所だからです。VS はこのフォルダーを使用して参照を解決します (つまり、API を出荷します)。ブランチ出力フォルダーではなく、このフォルダーからライブラリを解決していました。その方法は、アセンブリを [参照の追加] セクションに追加する方法です。

于 2012-05-17T08:24:07.977 に答える
0

ソリューション -> プロパティ

共通プロパティ -> プロジェクトの依存関係

Prj.UI は Prj.Infrastructure に依存します

于 2012-05-16T09:17:35.857 に答える