我的目标是为本地PC上的所有用户而不是当前用户安装VSTO Outlook加载项。我使用了Visual Studio中的Publish
方法,结果是exe文件,也就是ClickOnce
方法。(无法安装所有(
好吧,我开始我的研究,我发现了Wix
。
我的第一个问题是,当我从VSTO加载项从Visual Studio创建Build时,我有2个目录和20个文件,是否可以在WIX目录引用中的product.wxs
文件中分配目录?
第二个问题,当文件和目录是";已安装";到目标目录,(例如程序文件(如何将VSTO分配给Outlook?是否应该将VSTO添加到注册表HKLM
?
我在问我是否更接近目标
不确定我是否理解你的第一个问题,但无论如何我都会尽力回答。除了扩展名为*.pdb
的文件外,您必须将位于bin/Release
文件夹下的文件带到用户的电脑中。有两种方法可以将它们添加到安装中:
- 第一种方法是手动添加要包含在安装中的每个文件,作为
Product.wxs
中的文件组件。你可以在他们的官方教程中找到一个很好的例子 - 第二种方法是使用Wix Toolset中的收割工具(Heat(。此工具可以在生成过程中自动生成组件列表
至于你的第二个问题。若要使Word或Outlook看到您的加载项,您必须在安装过程中在Windows注册表中创建一个条目。例如,对于Microsoft Word,您必须使用以下条目创建一个新密钥HKLMSoftwareMicrosoftOfficeWordAddinsMySuperAddOn
:
条目 | 类型 | 值 | |
---|---|---|---|
描述 | REG_SZ | 必需。VSTO外接程序的简要说明。当用户在Microsoft Office应用程序的"选项"对话框的"加载项"窗格中选择VSTO加载项时,将显示此说明 | |
FriendlyName | REG_SZ | 必需。VSTO外接程序的描述性名称,显示在Microsoft Office应用程序的"COM外接程序"对话框中。默认值为VSTO加载项ID。 | |
加载行为 | REG_DWORD | 必需。一个值,用于指定应用程序尝试加载VSTO外接程序的时间以及VSTO外接到程序的当前状态(已加载或已卸载(。默认情况下,此条目设置为3,指定在启动时加载VSTO外接程序。有关详细信息,请参见LoadBehavior值。注意:如果用户禁用VSTO加载项,该操作将修改HKEY_CURRENT_user注册表配置单元中的LoadBehavior值。对于每个用户,HKEY_CURRENT_user配置单元中LoadBehavior值的值将覆盖HKEY_LOCAL_MACHINE配置单元中定义的默认LoadBehavior||
清单 | REG_SZ | 必需。VSTO外接程序的部署清单的完整路径。路径可以是本地计算机上的位置、网络共享(UNC(或Web服务器(HTTP(。如果使用Windows Installer部署解决方案,则必须将前缀文件///添加到清单路径。您还必须将字符串|vstolocal (即后面跟着vstolocal 的管道字符| (附加到此路径的末尾。这样可以确保从安装文件夹而不是ClickOnce缓存加载解决方案。有关详细信息,请参阅使用Windows Installer部署Office解决方案。注意:在开发计算机上构建VSTO外接程序时,Visual Studio会自动附加 |