VS 2010 SP1を使用してC++/CLI DLLを作成しましたが、そのDLLに厳密な名前で署名したいとします。 だから私はVS 2010のコマンドプロンプトでC++/CLI DLLに鍵ペアがありますが、厳密な名前検証に失敗します
sn -k TestNet.snk
をファイルTestNet.snkを作成し、その後、私はリンカー - >詳細設定>キーファイルのキーファイルを追加することによって、プロジェクトを構成しました。
Visual Studio 2010 SP1 Project Properties
たDLLは、その中に鍵ペアを持っていますが、私は、次のコマンドを使用してDLLを確認しようとすると:
sn -v TestNetDLL.dll
私は次のエラーを取得する:
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
TestNetDLL.dll does not represent a strongly named assembly
強い名前のDLLに再度署名しようとすると、次のエラーが表示されます。
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Failed to install key pair -- Object already exists.
キーペアはDLLにインストールされていますが、厳密に名前が付けられていません。何が欠けていますか?その他の設定?またはコードに何かを追加する必要がありますか? :(私は私が欠けているのか分からない
、助けてください!あなたのアドバイスや任意の提案をありがとうございました
IIRCでは、VS2010ではC++/CLIアセンブリの署名がborkenでした。mt.exeはマニフェストを埋め込み、ファイルハッシュを変更するときにそれをねじ込みます。遅延署名を使用します。 –
'%(Link.DelaySign)'を '$(LinkDelaySign) 'に置き換え、' KeyFile'にも 'Microsoft.Cpp.Win32.targets'ファイルを編集する必要があった強力なネーミングがありました。 – Medinoc