VS2010用で拡張機能マネージャーからNuGet PackageManagerを入れてみた。
» VisualStudioのブログ記事
表 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
(1)Worksheet.PageSetupに関して
(1.1)ZoomプロパティがFalseの場合(縦横ページ数を指定した場合)
Worksheet.HPageBreaks.Count または、 Worksheet.VPageBreaks.Count の値が正しくないことがある。
【環境】
VSTO_v4+Excel2010
【解決策】
FitToPagesTall プロパティまたは FitToPagesWideプロパティからページ境界数を算出
(1.2)PageSetupのZoomプロパティとDraftプロパティをを変更しても、反映されないことがある
【解決策】
.BlackAndWhiteなどの関係ないプロパティを、更新することでZoomプロパティやDraftプロパティも更新される。
(2)アクティブシートを定義したらOutlookが起動した。
Dim WithEvents cmnExcel as Excel.Application
Private Sub cmnExcel_WorkbookBeforePrint(Wb As Microsoft.Office.Interop.Excel.Workbook, _
ByRef Cancel As Boolean _
) Handles cmnExcel.WorkbookBeforePrint
‘中略
Dim ash As Object = cmnExcel.ActiveSheet ‘←コレ
‘中略
End Sub
症状としては、Outlook2007の初回起動時のアカウント等の設定画面が起動する。
【環境】
VSTO_v3+Excel2007,Outlook2007はインストール済み未使用の状態
【解決策】
Outlook2007の初回起動時の設定を一度するとその後はでない。
比較的容易に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にも信頼を付与する必要があるのだろう…
というわけで、試行錯誤中!
ほんとにメモです。
出典: http://msdn.microsoft.com/ja-jp/library/kz0ke5xt.aspx
- セットアップ プロジェクトのディレクトリで、新しい Uninstall.bat ファイルを作成します。
- セットアップ プロジェクト内で、ProductCode プロパティ ([[12345678-1234-1234-1234-123412341234]] などの値) をコピーします。
- Uninstall.bat を編集して次を含む 1 行を挿入します。ProductCode は手順 2. でコピーした値です。
- セットアップ プロジェクトのアプリケーション フォルダーに Uninstall.bat を追加します。
- Uninstall.bat を右クリックし、[ショートカットの作成] を選択してショートカットを作成します。
- セットアップ プロジェクトで、適切な [スタート] メニュー フォルダーにショートカットを含めます。
- ショートカットの名前を “
のアンインストール” などに変更します。
Msiexec /x ProductCode
ProductCodeは、{###…###}の形式で「{ }」が必要です。
作成したショートカットは、最小化で起動させるようにプロパティを変更します。
そうしないと、コマンドプロンプトの画面が表示されます。
また、アイコンを適当なものに変更した方がよいです。
バッチファイル(*.bat)ではなく、VBScriptでも同様な処理が可能です(たぶん)。