VSTOを使用してExcel 2003/2007のアドインをいくつか作成しましたが、通常はVSTOプロジェクトで.NET DLLを参照してしまいます(通常はプロジェクト間でコードを再利用します)。
次の問題が発生しました。 dllへの呼び出しは、デバッグモードや開発マシンで完全に動作しますが、msiインストーラでアドインをデプロイすると、dllはアドインのフォルダに追加されますが、アドインはDLLを呼び出すことができるようです。
私はこれを回避する方法を考え出しました。アドインにセキュリティを与えるインストーラのカスタムアクションの上に、アドインが参照する個々のdllにセキュリティを与える別のカスタムアクションを追加します。
http://msdn.microsoft.com/en-us/library/bb332052.aspxVSTOプロジェクトの展開に参照アセンブリを追加する方法はありますか?
私の問題は、動作している間、私はそれを正しくやっていると確信していません。それは非常に面倒であり、私が作ることができるのは実際には同じ場所でセキュリティが2回与えられているという事実を指しています。
ここにいる人は、私が正しいかどうかを教えてくれるでしょう。
は、私は有効な答えとしてこれをマークする前にこれを試してみる必要があるが、これは賢明になります:あなたは(SetSecurityはを拡張するような)公開鍵のプロ文法を取得したい場合は、このようなコードを使用することができます。 – Mathias
また、証拠としてURLを使用し、URLをインストールディレクトリに設定することもできます。これにより、そのフォルダ内のすべてのアセンブリがFullTrustになります。私はこれをお勧めしません。誰かがあなたのインストールフォルダに悪意のあるアセンブリを落として完全な信頼を与えてしまうと、誰かが脆弱性を作成したことを非難する可能性があります。私は誰かがそれを示唆した場合にのみこれを言います、なぜあなたはそれが良い考えではないかを見ることができます。 – HackedByChinese
ありがとう、私はそれが動作すると信じています。私は実際には、単一のdll(スレッド内のLex007ポスト)の代わりにコンマで区切られたdllのリストを追加できるように、SetSecurityプロジェクトの小さな修正を提案するmsdnフォーラムでこの投稿を見つけました。そうすれば、同じキーを共有する必要はありません。 http://social.msdn.microsoft.com/forums/en-US/vsto/thread/cec6abb6-4716-4bde-91f2-25fb68abd54e/ – Mathias