14

最新の Verisign コード署名証明書 (PFX) で署名した OneClick Deployed VSTO Addin があります。電話で Verisign サポートに正しく署名していることを確認しました。彼らも同意しています。VS2010でビルドしています。それにもかかわらず、アドインをインストールしようとすると、「不明な発行元」と表示されます。

なんで?

「不明な発行元」を PFX 証明書の発行元の名前に置き換えるにはどうすればよいですか?

これは、これまでの問題を解決するために私が行ったことです。

  1. アドインの「不明な発行元」の問題に関するこの質問を見つけました。その質問に対する受け入れられた回答でmage.exeは、展開マニフェストとアプリケーション マニフェストに署名するために使用する方法について説明しています。

  2. 以前mage.exeは、PFX 署名をアプリケーション マニフェストと配置マニフェストの両方に適用していましたが、役に立ちませんでした。アドインをインストールしても「不明な発行元」が表示されます。2008 年以前にビルドされた VSTO アドインは、アプリケーション マニフェストまたは配置マニフェストを読み取らないという最後のリンクのページに、MS プログラム マネージャーによるコメントが表示されたのはそのときだけでした。

  3. 次に、同じMSプログラムマネージャーのコメントがこのページにリンクされているのを見て、VS2010以降、リンクされたページで指定されたパブリッシャーを使用したVSTOアドインでマニフェストが読み取られ、アドインのインストール時に正しいパブリッシャー名が表示されると主張しました。

これをすべて実行しましたが、正しくコード署名された OneClick Deployment の発行元に「不明な発行元」と表示されます。なぜですか?

4

1 に答える 1

9

次の手順を実行します:

  1. 証明書をローカル マシンにインストールします。Windows エクスプローラーで証明書ファイルを右クリックし、 [ PFXのインストール] を選択して、指示に従います。

  2. VSTO プロジェクト マニフェストとアセンブリが署名されていることを確認します。[署名] タブの VSTO プロジェクトのプロパティで、[ClickOnce マニフェストに署名する] をオンにする必要があります (そうでない場合は、PFX ファイルを選択します)。「アセンブリに署名する」もチェックして、同じ PFX ファイルを使用する必要があります。

  3. VSTO を公開したら、マニフェストと公開された .vsto ファイルにコマンド ラインから署名する必要があります。また、mage.exe を実行する前に、bin から公開フォルダーに .dll をコピーする必要があります (「ファイルが見つかりません」エラーを回避するため)。安全のために、両方の .vsto に署名することを強くお勧めします。これらの手順を実行するためのコマンド ライン コードを次に示します。

-

set AppPublishPath=bin\Release\app.publish
set AppPublishVersionPath=bin\Release\app.publish\Application Files\MyProjectName_1_0_0_0

set CertificatePath=C:\SignedCertificate.pfx
set CertificatePassword=password

copy bin\*.dll "%AppPublishVersionPath%"

mage -update "%AppPublishVersionPath%\MyProjectName.dll.manifest"  -certfile "%CertificatePath%"  -Password %CertificatePassword%
mage -update "%AppPublishVersionPath%\MyProjectName.vsto"  -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest" -certfile "%CertificatePath%"  -Password %CertificatePassword%
mage -update "%AppPublishPath%\MyProjectName.vsto"  -appmanifest "%AppPublishVersionPath%\MyProjectName.dll.manifest"  -certfile "%CertificatePath%"  -Password %CertificatePassword%

考えられる追加の手順については、以下の Nathan のコメントを参照してください。

于 2012-05-09T14:12:54.650 に答える