7

VS2010で作成されたWord文書と対話するためのWPF4プロジェクトと、WordアプリケーションをホストするためのWinフォームユーザーコントロールプロジェクトがあります。およびその他のcomdll。すべてのcomdllは、メインのwpfアプリケーションに参照されます。プロジェクトを公開して、別のマシンにインストールして自動更新を実行できるようにしたいのですが、「アセンブリの生成に失敗しました-参照されているアセンブリ'Interop.Office'に厳密な名前がありません。」というエラーが表示されます。各COMDLLのエラー。dllは(Interop.word.dll、interop.office.dll、interop.VBIDE.dll)を参照し、これらすべてのdllも参照され、私のwpfコードで使用されます。

強力な署名付きアセンブリのリンクにも同じ質問があることがわかりましたが、問題は解決しません。

4

3 に答える 3

17

私はこれのためにインターネットをトロールしてしばらく過ごしました、私はあなたが必要とする答えがここにあるかもしれないと信じています、ほとんどのサードパーティのdllのために。

「相互運用機能DLLに厳密な名前を追加する」

この記事では、サードパーティのアセンブリに厳密な名前を追加する3つの方法について説明します。コマンドは次のとおり
です。1。キーペアを介して厳密な名前を追加する

> SN -k MyKeyPair.snk
> ILDASM ASQLService.dll /out:ASQLService.il
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=MyKeyPair.snk

2.証明書ストアの証明書を介して厳密な名前を追加する

> ILDASM ASQLService.dll /out:ASQLService.il  
> MAKECERT -ss MyCertificateStore -sk MyKeyContainer
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=@MyKeyContainer

3.個人情報交換(.pfx)ファイルの証明書を介して厳密な名前を追加する

> MAKECERT -r -pe -sv MyCertificate.pvk MyCertificate.cer
> PVK2PFX -pvk MyCertificate.pvk -pi qwerty -spc MyCertificate.cer -pfx MyCertificate.pfx
> SN -p MyCertificate.pfx MyCertificate-publickey.snk
> ILASM ASQLService.il /dll /resource=ASQLService.res /key=MyCertificate-publickey.snk
> SN -R ASQLService.dll MyCertificate.pfx

お役に立てば幸いです

于 2011-10-14T13:00:51.247 に答える
8

このコメントは答えになるはずです:

実際、「厳密な名前」の問題は、アセンブリに署名することを決定した場合にのみ開始されます。それ以降、参照されるすべてのdllも厳密な名前で署名される必要があります。

アセンブリに署名せず、このコンパイルエラーを克服したい場合。構築しようとしているアセンブリに署名しないことを選択します。その後、すべてのプロジェクト参照に署名する必要はありません。

于 2012-12-11T04:20:43.623 に答える
5

.snkが必要です

プロジェクトを右クリック->[プロパティ]をクリックし、[署名]タブに移動します->[アセンブリに署名する]をオンにします->新しいキーを選択します

それが役に立てば幸い

于 2011-10-26T13:48:45.413 に答える