私は 2 つのプロジェクトを開発していますが、どちらも ClearCase によって管理されています。つまり、Windows の場合、それらはネットワーク共有上にあるように見えます。
最初のプロジェクトは、マネージド C++ で VS 2003 を使用して記述された DLL であり、VS2003 C++ で記述された一部のレガシー DLL にマネージド インターフェイスを提供することを目的としています。
2 番目のプロジェクトは C# (.NET 3.5、VS2008) で記述されており、最初のプロジェクトによって生成された DLL が、ラッパーを介してレガシー DLL を使用するためのリファレンスとして含まれています。
C# プロジェクトを開始しようとすると、次のエラー メッセージが表示されます。
FileLoadException が処理されませんでした
ファイルまたはアセンブリ '(マネージ C++ ラッパー)、Version=(バージョン番号)、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。アクセスが拒否されました。
詳細を見ると、これは System.Io.FileLoadException の内部に System.UnauthorizedAccessException (「アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))」が含まれています)
C# プロジェクトをローカル ハード ドライブにコピーすると、マネージ C++ プロジェクトがネットワーク ドライブに残っていても、すべて正常に動作します。
以前にネットワーク ドライブでアクセス許可の問題が発生したことがありますが、.NET 3.5 SP1 にアップグレードすると、これらの問題はなくなりました。また、All_Code コード グループのアクセス許可セットを .Net Configuration 1.1 の「完全な信頼」に変更しようとしました。および 2.0 がインターネットで提案されていますが、これも役に立ちませんでした。ところで、DLL が読み取り専用かどうかも確認しましたが、そうではありません。
助けてくれてありがとう!
更新: また、両方のアセンブリに厳密な名前で署名し、これらのキーに完全な信頼を与えようとしましたが、役に立ちませんでした。何か他の理由があるはずですが、私は考えがありません。