8

VS 2010、Win Server 2003、.Net3.5ソリューション。これらは.Net1.1から移行されました。

ソリューション内のすべてのプロジェクトは遅延署名されています。ソリューションは、デバッグ用に正常にビルドできますが、リリース用に常に失敗し、次のエラーが発生します。SGEN:エラー:ファイルまたはアセンブリを読み込めませんでした'AssemblingX、Version = 1.0.5000.0、Culture = neutral、PublicKeyToken=xxxxxxxx'またはその依存関係の1つ。厳密な名前の検証に失敗しました。(HRESULTからの例外:0x8013141A)

AssemblingXは、私が構築したいプロジェクトです。このプロジェクトで参照されているすべてのDLLはローカルフォルダーに保存され、すでに署名されています。プロジェクトAssemblingXのプロパティを変更して署名すると、リリース用のソリューションを正常にビルドできます。

http://social.msdn.microsoft.com/Forums/nl-NL/msbuild/thread/695581ae-77e7-4c3a-bb3f-6472b8c47f65のガイドに従って、「loadFromRemoteSources」を有効にするsgen.exe.configを作成しました。

しかし、何も変わりませんでした。何か案は?

ありがとう

4

6 に答える 6

19

この問題は、厳密な名前の検証に関連しています。Ildasm.exe(C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin)でAssemblyXを開きます。そのことに注意してください、例を挙げましょう。次に、管理者モードでVSコマンドプロンプトを開き、sn.exeコマンドを実行します。そのような:PublicKeyTokenpkt123

sn -Vr *,pkt123

ソリューションを再構築すれば、今ではすべてがうまくいくはずです。

しかし、そうでなくても同じエラーが発生する場合は、別のバージョンのsn.exeを実行する必要があります。これを見つけるには、VisualStudioのコマンドプロンプトに移動します。

c:\Program Files(x86)>dir /s sn.exe

5〜10秒かかる場合があり、sn.exeファイルのリストが表示されます。上記のように、パスに移動して、必要な、または自分に属するsn.exeを実行します。どちらを実行するかわからない場合は、すべてのsn.exeを実行してください。それはあなたの問題を解決するはずであり、解決しなければなりません。そうでない場合は、私に知らせて、RnDを再度繰り越してください。

于 2012-10-22T10:10:19.653 に答える
5

これに対する唯一の答えについてコメントすることはできないので、私がしたのと同じようにこの答えに出くわした他のユーザーが他のユーザーと同じ間違いをしないようにしたかったのです。強力な名前付けユーティリティに関するMSDNのドキュメントによると、Vr(署名スキップ)スイッチを使用すると、悪意のあるアセンブリが読み込まれる可能性があるため、展開ではなく開発でのみ使用する必要があります。

http://msdn.microsoft.com/en-us/library/k5b5tt23(v=vs.80).aspx

于 2013-05-13T18:52:57.297 に答える
1

それでも解決されない場合は 、キーのAllowStrongNameBypass(DWORD)を削除または「1」に設定する必要があります

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

64ビットコンピューターでは、

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework
于 2013-08-24T14:59:43.087 に答える
1

私の場合、その理由は、ネイティブライブラリが他のアプリケーションとは異なるフォルダにビルドされていたためです。

于 2014-12-13T20:16:41.970 に答える
1

cmdを開きます。

Cd  "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"   

実行

sn –Vr **AssemblingX** name (without dll extension), **PublicKeyToken**

(コード)

ソリューションを再構築します。そしてそれは解決されるべきです。

于 2015-11-18T15:36:59.913 に答える
0

私は私のために働いたものを入れています。最初のビルドでこのエラーで失敗し、次にソリューションで再構築を行ったところ、正常にビルドされました。

于 2021-07-26T16:31:18.677 に答える