Vsto 如何使用InstallShield为Office运行时重新分发Visual Studio 2010工具?

Vsto 如何使用InstallShield为Office运行时重新分发Visual Studio 2010工具?,vsto,add-in,installshield,redistributable,Vsto,Add In,Installshield,Redistributable,使用:VS 2012, InstallShield 2012春季快车 对于我的Excel外接程序,我需要重新分发到必备组件: -Microsoft.NET Framework 4.5完整版 -VisualStudio2010 Office运行时工具 在任何情况下,.NET Framework都没有问题。我通过安装或网络下载重新发布它。一切都好 但是VSTO给我带来了一些麻烦: 1) “web下载”无法正常工作。即使我使用这些建议- 毕竟,我下载了vstor_redist.exe(~40 Mb)并

使用:VS 2012, InstallShield 2012春季快车

对于我的Excel外接程序,我需要重新分发到必备组件: -Microsoft.NET Framework 4.5完整版 -VisualStudio2010 Office运行时工具

在任何情况下,.NET Framework都没有问题。我通过安装或网络下载重新发布它。一切都好

但是VSTO给我带来了一些麻烦: 1) “web下载”无法正常工作。即使我使用这些建议-

毕竟,我下载了vstor_redist.exe(~40 Mb)并将其添加到安装程序中。 2) 安装程序开始安装vstor_redist.exe,并真正做到了!但随后我看到一条奇怪的InstallShield消息,VSTO安装似乎失败了。 然而,安装后,应用程序工作正常

两个问题: 如何使用web下载选项重新分发VSTO? 如何避免出现无用的“安装失败消息”? 看起来这些都是安装屏蔽的bug


Roman

我有时看到InstallShield提供的.PRQ文件变成OBE(被事件克服)。例如,我看到微软重新发布redist并保持URL(fwlink)不变。但是,PRQ是针对文件的旧版本编写的,导致文件大小和/或文件哈希无效。还有一个工件被搜索、评估以确定是否需要安装,并重新评估以确认安装是否成功

因此,基本上将PRQ文件发送到Prereq编辑器工具,并验证其所有假设仍然正确。如果需要,请进行修改。

在我的情况下(Windows 8 x64-Office x64-Installshield LE Beta VS2012/13): 先决条件(VSTO_Redist.exe)检查的注册表项错误。检查我的安装的实际密钥是: “HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSTO运行时设置\v4R” 我还根据VSTO下载链接更新了文件校验和和文件版本:URL=”http://go.microsoft.com/fwlink/?LinkId=158918“(此链接在用于发布的引导中提供)

为我工作的详细编辑的先决条件文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
<conditions>
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4R" FileName="Version" ReturnValue="10.0.40820.0" Bits="2"></condition>
</conditions>
<files>
    <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\VSTOR\vstor_redist.exe" URL="http://go.microsoft.com/fwlink/?LinkId=158918" CheckSum="197e479106a8b976fe584706657b4756" FileSize="0,40058880"></file>
</files>
<execute file="vstor_redist.exe" returncodetoreboot="1641,3010" requiresmsiengine="1">
</execute>
<properties Id="YOUR GUID GOES HERE" Description="This prerequisite installs the most recent version of the Microsoft Visual Studio 2010 Tools for Office Runtime." >
</properties>

</SetupPrereq>

您需要将“您的GUID位于此处”替换为使用工具菜单中的工具生成的GUID。(请参阅帮助文件:了解更新先决条件的方法)

上面提到的帮助文件对于x64构建也有错误的建议。注册表项建议: 如果要为64位版本的Office创建安装程序,则整个层次结构为HKEY\U USER\U SELECTIVE\Software\Wow6432Node\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn 实际上适用于所有用户,x86 Office在x64 Windows中运行

要使用的正确注册表项可以在以下位置找到:

最后:InstallShield LE Beta版VS2012/13将根据[INSTALLDIR]文件夹确定目标(x86或x64)(即:是“程序文件”还是 x64 Windows中的“程序文件(x86)”或任何组件定义为64位。有关详细信息,请参阅InstallShield帮助文件(在索引中查找“64位”)。InstallShield LE不公开在InstallShield的完整版本中用于确定x86或x64目标的属性“模板摘要代码”


我希望这能对某些人有所帮助。

它显示了这样一条消息,因为安装后该条件仍然失败,很可能是由于32位或64位操作系统的路径差异(正如@AlBear指出的)。如果同时针对这两个文件,则可以为Install Shield LE创建两个预请求文件,每个文件都有自己的操作系统条件检查位性。将两个pre-Req添加到单个安装程序中,并仅执行相应的pre-Req(基于操作系统条件):

32位

<conditions>
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTO Runtime Setup\v4R" FileName="Version" ReturnValue="10.0.40309" Bits="2"></condition>
    <operatingsystemconditions>
        <operatingsystemcondition Bits="1"/>
    </operatingsystemconditions>
</conditions>

64位

<conditions>
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4R" FileName="Version" ReturnValue="10.0.40309" Bits="2"></condition>
    <operatingsystemconditions>
        <operatingsystemcondition Bits="4"/>
    </operatingsystemconditions>
</conditions>