Office2003のVSTOを配布・実行するために、
いくつか設定をしたため、メモ。
■配布する上で必要な設定
- 開発:Visual Studio 2008 Pro 上にて、アセンブリの署名
- 開発:発行
- クライアント:必要なツールをインストール
- クライアント:ランタイムセキュリティポリシーへの追加
■実際の手順
1.開発:Visual Studio 2008 Pro 上にて、アセンブリの署名
「Properties」->「署名」 より、「■アセンブリの署名」にチェックを入れる。
ファイル名・パスワードは任意。
→ソリューションに、「xxx.pfx」ファイルが追加されているのを確認。
2.発行
アセンブリの署名をしたソリューションをVSTO開発したExcelファイルの保存先へと発行。
3.クライアント:必要なツールをインストール
以前の記事より、必要なツールをクライアント端末へとインストール。
- Office2003 Professional (単体Excelなどでも可)
- .NET Framework2.0 以降
- Office 2003 製品用のプライマリ相互運用機能アセンブリ
- Office2003用Visual Studio 2005 Tools for Office Second Edition Runtime
- Microsoft .NET Framework2.0 構成ツール(以下、Mscorcfg.msc) *任意
4.ランライムセキュリティポリシーへの追加
コンピューターレベルポリシーの「All_Code」の下に、以下の2つを追加。
- 始める前に
追加作業は管理者のコマンドプロンプトで実行。
また、今回は .NET Framework2.0のCaspol.exeで実行するため、
以下のコマンドでカレントディレクトリを変更。
cd %SystemRoot%\Microsoft.NET\Framework\v2.0.50727
- 厳密な名前のコードグループ の設定
「Mscorcfg.msc」でも実行可能だが、今回はコマンドプロンプトで実行。
caspol -machine -addgroup All_Code -strong -file
-noname -noversion FullTrust -name "<コードグループ名>"
各項目の説明は以下の通り。*1
項目 | ここで指定した引数 | 説明 |
-machine | (なし) | 「コンピューターレベルポリシー」に設定*2 |
-addgroup | All_Code | 既存のコードグループのうち、All_Codeを親の配下に作成 |
-strong -file | VSTO開発した厳密な名前付dllファイルへのフルパスを指定*3 | |
-noname -noversion | (なし) | 今回は名前を特定しないため、左のオプションを指定 |
FullTrust | (なし) | アクセス許可セットとして、「FullTrust」を指定 |
-name | "<コードグループ名>" | 追加するコードグループ名を「"」で囲んで指定 |
コマンドを正しく実行すると、以下が表示されるので、「y」を入力。
この操作を実行するとセキュリティ ポリシーが変更されます。
この操作を続行しますか? (yes/no)
正常に完了すれば、以下が表示。
"-strong" メンバシップ条件で Machine レベルに追加された合併コード グループです。
正常に完了
こちらも管理者コマンドプロンプトより実行。
caspol -machine -addgroup All_Code -url
FullTrust -name "<コードグループ名>"
各項目の説明は以下の通り。
項目 | ここで指定した引数 | 説明 |
-machine | (なし) | 「コンピューターレベルポリシー」に設定 |
-addgroup | All_Code | 既存のコードグループのうち、All_Codeを親の配下に作成 |
-url | そのパス以下を信頼するため指定*4 | |
FullTrust | (なし) | アクセス許可セットとして、「FullTrust」を指定 |
-name | "<コードグループ名>" | 追加するコードグループ名を「"」で囲んで指定 |
コマンド入力後の確認などは、厳密名の時と同じ。
■備考
Mscorcfg.mscの操作で「厳密な名前」を選択すると、「公開キー」欄あり。
コマンドプロンプトから操作した場合、アセンブリから公開キーを取得して、
その公開キー欄に設定している模様。
コマンドプロンプトから公開キーを設定する場合は、以下のコマンドとなる
caspol -machine -addgroup All_Code -strong -hex <公開キー> -noname -noversion FullTrust -name "<コードグループ名>"
上記の公開キーを取得する場合は、Mscorcfg.mscから取得するのが早い。
これにより、自動的に公開キーがセットされる。
■参考資料
MSDNでは、以下のあたりを参照。
MSDN - Office ソリューションの実行に必要なセキュリティ条件 (2003 システム)