» Windowsインストーラーのブログ記事


表 4. ブートストラップされるパッケージの製品コードとコンポーネント ID

パッケージ 製品コード コンポーネント ID
VSTO 2005 SE ランタイム {388E4B09-3E71-4649-8921-F44A3A2954A7} {D2AC2FF1-6F93-40D1-8C0F-0E135956A2DA}
Visual Studio 2005 Tools for Office Language Pack {5DB161C0-7C9C-41D7-8DA1-CB112F60946B} {2E3A394E-C9BD-40C3-9990-BA7AF7C8B4AF}
Office 2003 プライマリ相互運用機能アセンブリ {91490409-6000-11D3-8CFE-0150048383C9} 次に示す特定のプライマリ相互運用機能アセンブリのコンポーネント IDを使用する。
2007 リリース Office プライマリ相互運用機能アセンブリ {50120000-1105-0000-0000-0000000FF1CE} 次に示す特定のプライマリ相互運用機能アセンブリのコンポーネント IDを使用する。

表 5. プライマリ相互運用機能アセンブリのコンポーネント ID

プライマリ相互運用機能アセンブリ Office 2003 コンポーネント ID Office 2007 コンポーネント ID
Excel {A1FE0698-609D-400F-BF10-F52238DD6475} {1ABEAF09-435F-47D6-9FEB-0AD05D4EF3EA}
InfoPath {C1E59364-35F6-44B3-AF0F-FCA934C4B252} {F1B5AE30-CB00-4DCF-978B-07D33B034ADB}
Outlook {14D3E42A-A318-4D77-9895-A7EE585EFC3B} {ED569DB3-58C4-4463-971F-4AAABB6440BD}
PowerPoint {3F40FA9E-26CA-4CA2-93C9-603622349915} {04E73476-518E-4B6A-8E10-021A00078847}
Visio {6F1AE751-4D8A-4B25-AC0A-C6CB912A9791} {C1F1028F-D91A-43E8-A117-4F7CAFD7A041}
Word {1C8772BD-6E6F-4C9D-8FF8-B5EA072F86EF} {816D4DFD-FF7B-4C16-8943-EEB07DF989CB}
Microsoft Forms 2.0* {835AC3CE-E36B-4D65-B50F-2863A682ABEE} {835AC3CE-E36B-4D65-B50F-2863A682ABEE}
Microsoft Graph {A58B51D1-89BF-4D88-939D-B6D0DB2EEB53} {580CB155-841D-4D48-9F59-866A035C2241}
スマート タグ {53C65973-D89D-4EA0-8567-8788C14E0A02} {00B41853-4377-4AD8-AD44-8404E0D331EC}

Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 1 of 2)
Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する: ウォークスルー (Part 2 of 2)

Component IDs of the Redistributable Primary Interop Assemblies for Microsoft Office 2010

Primary interop assembly Office 2010 component ID
Excel {EA7564AC-C67D-4868-BE5C-26E4FC2223FF}
InfoPath {4153F732-D670-4E44-8AB7-500F2B576BDA}
Outlook {1D844339-3DAE-413E-BC13-62D6A52816B2}
PowerPoint {EECBA6B8-3A62-44AD-99EB-8666265466F9}
Visio {3EA123B5-6316-452E-9D51-A489E06E2347}
Word {8B74A499-37F8-4DEA-B5A0-D72FC501CEFA}
Microsoft Forms 2.0 {B2279272-3FD2-434D-B94E-E4E0F8561AC4}
Microsoft Graph {011B9112-EBB1-4A6C-86CB-C2FDC9EA7B0E}
Smart Tag {7102C98C-EF47-4F04-A227-FE33650BF954}
Office Shared {64E2917E-AA13-4CA4-BFFE-EA6EDA3AFCB4}
Project {957A4EC0-E67B-4E86-A383-6AF7270B216A}

Deploying a Visual Studio 2010 Tools for Office Solution Using Windows Installer


比較的容易にWindowsインストーラーを作成できた事例

(1)VisualStudio2010(VSTO v4)+Office2010
(2)VisualStudio2008(VSTO v3)+Office2007

Windowsインストーラーの作成を挫折(?)した事例

(3)VisualStudio2010(VSTO v4)+Office2007
(4)VisualStudio2008+Office2003 (*1)
(5)VisualStudio2005+Office2003 (*1)

試していない組み合わせ
(6)VisualStudio2005+Office2007

*1 : 外部のDLLを参照しなければ簡単にできる。

ちなみに、インストーラーの作成に当たっては、VS2008+Office2003の場合は、VS2005+Office2003と同様な方法で行う。
VS2008+Office2007の情報を参考にしてはいけない。
また、アドインとドキュメントでは信頼付与の作法が異なるので、異なる対象の情報も参考にしてはいけない。

さて、本題…
今、直面しているのは上記(4)のケース。
外部のDLLをプロジェクトに追加し、参照するとインストーラーを使ってインストールしてもうまく動かない。
上記(1),(2)の場合は、このトラブルは無かった。
おそらく、外部参照のDLLにも信頼を付与する必要があるのだろう…
というわけで、試行錯誤中!


VS2008とOffice2007で作成したアドインをmsi形式で配布するためにWindowsインストーラーでセットアップファイルを作成してみた。

基本的には、松崎 剛さんのBlogに記載されている通りでOKなので補足を書きます。
http://blogs.msdn.com/b/tsmatsuz/archive/2008/03/31/vsto-v3-windows-installer.aspx

(1)VS2008を起動し、新規プロジェクトとして、VBでWord2007アドインを作成する。
.Net Framework3.5が作成するのが無難です。

(2)上記のアドイン(ソリューション)に新規プロジェクトとしてセットアッププロジェクトを追加する。
セットアッププロジェクトで設定する項目は次の通り。

(2.1)セットアッププロジェクトのプロパティ
InstallAllUsersの項目はFalseにする。
Office2007のアドインは、AllUser(LOCAL_MACHINE)にインストールすることができないので

(2.2)ファイルシステム
アプリケーションフォルダにアドインプロジェクトのプライマリ出力を追加する。
また、アドインを一度ビルドした後、*.dll.manifestと*.vstoファイルを手動で追加する。

(2.3)レジストリ
HKEY_CURRENT_USER\Software\Microsoft\Office\Word\AddIns\macroya.easyprintwに次の値を登録する
ちなみに、「macroya.easyprintw」は、アドイン識別名で、重複しなければ何でもよいようだ。
「easyprintw」だけだと、万が一他の人が同じ名前をつけたときに、アドインが正常に動かなくなるため、自分を識別する「macroya」をつけている。

(a)Description : EasyPrint for Word2007
(b)FriendlyName : EasyPrint for Word2007
(c)Manifest : [TARGETDIR]easyprintw.vsto|vstolocal
(d)LoadBehavior : 3

(a)から(c)は、文字列の値
(d)は、DWORD値

(a),(b)は、Wordに表示されるアドインの名前
(c)は、配置先。「[TARGETDIR]」は、通常は、c:\ProgramFiles\製造者名\製品名\ となるようだ。
(d)は、3を入力すると、起動時に読み込まれる。

(2.4)ユーザーインターフェース
インストールフォルダのInstallAllUserVisibleプロパティをFalseにする。
これは、上記(2.1)と同様の理由。

(2.5)起動条件
小生の環境では、セットアッププロジェクトの必須コンポーネントで、.Net Frameworkや、VSTO Runtimeを選択してもアドインのインストール時には、これらのコンポーネントはインストールされませんでした。
該当するWebページにも移動しませんでした。
なので、起動時にRuntimeの確認とWord2007の確認を行うように設定します。

ここまでで、セットアッププロジェクトをビルドすると、アドインがただしくインストールされ、使用できることが確認できました。

松崎さんのブログでは、これだけでは、対象となるアプリを起動した場合に、Inclusion List 絡みの確認メッセージが出現すると記述されています。

小生の環境では、最初にアドインをインストールしたときは、この確認メッセージは表示されませんでしたが、VSTO Runtimeなどすべて削除した状態で、再度、アドインのインストールを試みたら、英文表記で確認メッセージが表示されました。
というわけで、この確認メッセージの回避はやはり必要なようです。

この回避方法としては、回避プロジェクトをソリューションに追加すればよいと書かれており、C#でのコードも記述されています。
手動で、このプロジェクトを新規に作成し、このC#のコードをVBに変換したものをしようして、クラスに追加すると、エラーがいっぱいでて上手くいきません。
松崎さんのブログをよくよく読むと、サンプルのダウンロードサイトを案内してくれています。

http://code.msdn.microsoft.com/VSTO3MSI/Release/ProjectReleases.aspx?ReleaseId=729

このサイトでダウンロードしたファイルには、VBで記述されたサンプルも収録されています。
これを利用すればOKです。


先日の続き

現在、EasyPrint for Word2007 というWord2007用印刷アドインを作成している。
VS2010とWord2007で作成を試みたが、上手くいかなかったことは先日述べたとおり。
いろいろ試してみたが、やっぱり上手くいかない。
しかたないので、VS2008で作成してみることにした。

全部作ってからセットアップしても動かない…なんてことになると、アホらしいので(すでに2回ほどアホなことをしましたが…)今回は、最低限のアドインプログラムとセットアッププロジェクトのみでセットアップの作成を試みた。

結果、上手くいかない…^^;

いろいろ調べてみると、アドインプログラムがセットアップされたフォルダにまったくファイルが存在しない…
もう少し調べてみなければ…

追記
アプリケーションフォルダにファイルが存在しなかった原因は、セットアッププロジェクトのファイルシステムで、アプリケーションフォルダではなく、ユーザーのプログラムメニューにファイルを追加していたためでした。

そして、レジストリを HKEY_LOCAL_MACHINE に登録していたことが動作しない原因でした。
たしかに、松崎さんのBlogやMSDNを見ても、
レジストリは、HKEY_CURRENT_USERに登録されている。

しかしながら、HKEY_CURRENT_USERに登録してしまうと、当然のことながら、インストールしたユーザーしか使用できないではないか?!
と思ったら、MSDNにしっかりと書いてあった。

2007 Microsoft Office system のアプリケーションは、HKEY_CURRENT_USER に登録された Visual Studio Tools for Office アドインのみを認識します。したがって、アドインを HKEY_LOCAL_MACHINE の下に登録することによってコンピュータ上のすべてのユーザーに対して 2007 Microsoft Office system の Visual Studio Tools for Office アドインを配置することはできません。

と…
おいおい…^^;

http://msdn.microsoft.com/ja-jp/library/bb386106(v=VS.90).aspx


VS2010(VB.NET)でVSTOを使ってOffice2010のアドインを作成した。
ClickOnceではなく、Windowsインストーラーでセットアップファイルを作成する上での注意点

(1)VS2008(VSTO v3)系以前のWEBサイトの情報を適用してはダメ

参考にすべきサイト
(1-1)概要
Windows インストーラーを使用した Office ソリューションの配置
http://msdn.microsoft.com/ja-jp/library/cc442767(v=VS.100).aspx

(1-2)サンプルを使った作成例(英語)
Deploying a Visual Studio 2010 Tools for Office Solution Using
Windows Installer
http://msdn.microsoft.com/en-us/vsto/ff937654.aspx

VSTOによるアドイン作成環境は、以前のバージョンより格段に簡単になりました。
従前の煩わしさがかなり改善されていますが、まだまだ通常のWindows Formアプリのように簡単にセットアッププロジェクトを作成することはできません。

VS2010環境でアドインを作成し、Windowsインストーラーでセットアップファイルをつくろうとすると、私を含め初心者は壁に当たります。
VS2010+Windowsインストーラーの環境での情報は少ない(ほぼ皆無)ので、従前のバージョンを参考にしようとしてしまいますが、これはタブーです。VS2010(VSTO v4)環境の説明でない限り無視した方が近道です。
上記(1),(2)の方法で動くことは確かなので、動かない場合は、次の点をチェック!

(2).NetFramework4.0を使ってアドイン作成してダメ
.NET Framework4.0でアドインを作成すると、インストールしてもLoadされません。
.NET Framework4.0 Client ProfileはOK
.NET Framework3.5もOK
その他は試していない。

(3)VSTO Runtimeはユーザーがインストールする必要がある。
セットアッププロジェクトの必須コンポーネントには、VSTO RuntimeのLanguagePackは指定できるが、Runtimeは指定できない。
上記(1-2)のサンプルでも示されているように、起動条件でVSTO Runtimeの存在を確認し、ない場合は警告を出すことができるが、RuntimeのDownloadとインストールはユーザーが行う必要がある。

私の環境だけかもしれないが参考まで…

ブログ検索

ブログカレンダー

2024年3月
« 10月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Yahoo!ショッピング

アクセスカウンタ

  • 本日(回): 34
  • 週間(回): 501
  • 合計(回): 436734

Since 2011/07/01