» VisualStudioのブログ記事


VS2010用で拡張機能マネージャーからNuGet PackageManagerを入れてみた。


表 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

  1. セットアップ プロジェクトのディレクトリで、新しい Uninstall.bat ファイルを作成します。
  2. セットアップ プロジェクト内で、ProductCode プロパティ ([[12345678-1234-1234-1234-123412341234]] などの値) をコピーします。
  3. Uninstall.bat を編集して次を含む 1 行を挿入します。ProductCode は手順 2. でコピーした値です。
  4. Msiexec /x ProductCode
    ProductCodeは、{###…###}の形式で「{ }」が必要です。

  5. セットアップ プロジェクトのアプリケーション フォルダーに Uninstall.bat を追加します。
  6. Uninstall.bat を右クリックし、[ショートカットの作成] を選択してショートカットを作成します。
  7. セットアップ プロジェクトで、適切な [スタート] メニュー フォルダーにショートカットを含めます。
  8. 作成したショートカットは、最小化で起動させるようにプロパティを変更します。
    そうしないと、コマンドプロンプトの画面が表示されます。
    また、アイコンを適当なものに変更した方がよいです。

  9. ショートカットの名前を “ のアンインストール” などに変更します。

バッチファイル(*.bat)ではなく、VBScriptでも同様な処理が可能です(たぶん)。

ブログ検索

ブログカレンダー

2017年11月
« 10月    
 1234
567891011
12131415161718
19202122232425
2627282930  

Yahoo!ショッピング

アクセスカウンタ

  • 本日(回): 143
  • 週間(回): 334
  • 合計(回): 276549

Since 2011/07/01