5

これは、VS2010 での Windows フォーム プロジェクト用です。

MSBuild から受け取るメッセージは次のとおりです。

エラー RG0000: ファイルまたはアセンブリ '3rdPartyAssemblyUsedByProject、Version=1.1.263.0、Culture=neutral、PublicKeyToken=687bce93d7ce902c' またはその依存関係の 1 つを読み込めませんでした。アクセスが拒否されました。行 174 、位置 5. [C:\xxx\src\BackOffice.csproj]

これを開始するために使用されるコマンドラインは次のとおりです。

c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/msbuild.exe BackOffice.csproj /p:PlatformTarget=x86

エラーに起因する resx ファイルの 174 行目:

<data name="generalImages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        ...
    </value>
  </data>

generalImages は、フォーム上のボタンに使用される画像を含む ImageList コントロールです。

これは開発マシンでは問題なく動作しますが、ビルド サーバーでは問題になります。私のワークステーションは Windows 7 64 ビットで、ビルド サーバーは Windows 2008 Server 64 ビットです。ビルド サーバーには Windows 7.1 SDK がインストールされています。

v3.5 フレームワークの msbuild を使用すると、コンパイルは正常に完了します。現時点では問題のない警告メッセージが表示されます。プロジェクト ファイルには、このバージョンの MSBuild ではサポートされていない ToolsVersion="4.0" が含まれています。ToolsVersion="3.5" があるかのようにプロジェクトを扱います。

これの全体的な理由は、実際には 4.0 フレームワークをターゲットにして、3.5 をターゲットにする場合には機能しないメソッドのデフォルトなどを使用するためです。

私はこれを検索して検索しました。32 ビット/64 ビットの問題に関連する多くのヒットに遭遇しました。問題はイメージ フォーマットですが、これは私の問題ではありません。このエラーは、「アクセスが拒否されました」と表示されます。私は fuslogvw を使用して、拒否されたアクセスがどこから来ているのかを突き止めようとしましたが、それはわかりませんが、実際にはアセンブリが見つかりません。アセンブリは GAC にはありませんが、プロジェクト ファイル参照があるプロジェクト ファイルに接するディレクトリにあります。

融合ログは次のとおりです。

* アセンブリ バインダー ログ エントリ (2010 年 8 月 30 日 @ 1:44:48 PM) *

操作に失敗しました。バインド結果: hr = 0x80070002。システムは、指定されたファイルを見つけることができません。

アセンブリ マネージャーの読み込み元: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 実行可能ファイルの下で実行 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe --- A詳細なエラー ログが続きます。

=== バインド前の状態情報 === LOG: User = domain\user LOG: DisplayName = 3rdPartyAssemblyUsedByProject, Version=1.1.263.0, Culture=neutral, PublicKeyToken=687bce93d7ce902c (完全指定) LOG: Appbase = file:// /C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = NULL Calling assembly : System.Windows.Forms,バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089。=== ログ: このバインドは、デフォルトのロード コンテキストで開始されます。ログ: アプリケーション構成ファイルの使用: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ResGen.exe.Config ログ: C:\Windows\Microsoft.NET\Framework64\v2.0.50727 のマシン構成ファイルの使用\config\machine.config. ログ: ポリシー後の参照: 3rdPartyAssemblyUsedByProject、バージョン = 1.1.263.0、カルチャ = ニュートラル、PublicKeyToken = 687bce93d7ce902c ログ: GAC ルックアップに失敗しました。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: すべてのプローブ URL が試行され、失敗しました。新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: すべてのプローブ URL が試行され、失敗しました。新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: すべてのプローブ URL が試行され、失敗しました。/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: すべてのプローブ URL が試行され、失敗しました。/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.DLL. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/3rdPartyAssemblyUsedByProject/3rdPartyAssemblyUsedByProject.EXE. LOG: すべてのプローブ URL が試行され、失敗しました。

この時点で - 私は困惑しています。次に行く場所がわからない。どんなアドバイスでも大歓迎です。

コート

4

4 に答える 4

3

これは、 blogs.msdn.com で説明されている既知の VS 2010 バグによく似ています。もしそうなら、マイクロソフトは早くも Visual Studio 11 までは修正しないことを決定したようであり、多くの人々 (私たちを含む :| ) にとって、投稿で言及されている回避策はありません。とても幸運。

于 2011-02-08T13:04:30.900 に答える
1

ResGenで同様の問題が発生しました:エラーRG0000:参照されたアセンブリを読み込めませんでした。私の場合、ソリューション内のプロジェクトファイルの1つがvs2010に正しくアップグレードされていなかったことが判明しました。ツール参照を4.0に修正すると、正しく機能しました。

于 2010-11-09T19:59:28.343 に答える
0

@Joel の回答に記載されているように、このMSDN ブログで説明されている正確な問題に直面しました。

私が使用した回避策は、そのブログ投稿のコメント セクションで説明されています。これは、j00L を検索し、resx が発生したエラーで j0yL に置き換えることです。ファイル。この回避策の悪い点は、resx を編集する必要があることです。イメージリストに変更を加えるたびにファイルに保存されます。

于 2014-04-09T09:39:39.190 に答える
0

チーム ビルドはサービス アカウントで実行されます。このアカウントが、サード パーティのアセンブリがあるプログラム ファイルの場所にアクセスできるかどうかを確認しましたか?

于 2010-08-30T20:57:44.227 に答える