2

使用:VS 2012、InstallShield 2012 Spring Express

对于我的 Excel 加载项,我需要重新分发到先决条件: - Microsoft .NET Framework 4.5 Full - Visual Studio 2010 Tools for Office Runtime

无论如何,.NET Framework 都没有问题。我通过设置或网络下载重新分发它。一切都好。

但是使用 VSTO 我遇到了一些麻烦:1)“网络下载”无法正常工作。即使我使用这个建议 - http://msdn.microsoft.com/en-us/library/vstudio/cc442767.aspx#Configure

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

两个问题:如何通过网络下载选项重新分发 VSTO?如何避免出现无用的“安装失败消息”?看来这些是 InstallShield 错误...

罗马

4

3 回答 3

6

在我的情况下(Windows 8 x64 - Office x64 - Installshield LE Beta VS2012/13):先决条件(VSTO_Redist.exe)检查的注册表项是错误的。检查我的安装的实际关键是:“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4R” 我还根据 VSTO 下载的链接更新了文件 CheckSum 和文件版本:URL="http:// go.microsoft.com/fwlink/?LinkId=158918"(此链接在 Bootstrap for Publishing 中提供)。

对我有用的详细编辑的先决条件文件如下:

<?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>

您需要将“YOUR GUID GOES HERE”替换为使用工具菜单中的工具生成的 GUID。(有关更新先决条件的方法,请参阅帮助文件: http: //msdn.microsoft.com/en-us/library/cc442767 (v=vs.110).aspx)

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

可以在以下位置找到要使用的正确注册表项: VSTO 加载项控件不会自动出现

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

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

于 2013-10-23T22:34:59.143 回答
1

它显示该消息是因为安装后条件仍然失败,很可能是由于 32 位或 64 位操作系统上的路径差异(正如@AlBear 指出的那样)。如果您同时针对两者,则可以为 Install Shield LE 创建 2 个 pre-req 文件,每个文件都有自己的操作系统条件检查位数。将两个 pre-reqs 添加到您的单个安装程序中,并且只有适当的一个会执行(基于操作系统条件):

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>
于 2013-11-20T17:05:52.577 回答
0

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

所以基本上将 PRQ 文件发送到 Prereq Editor 工具并验证它的所有假设仍然正确。根据需要进行修改。

于 2013-04-08T18:51:23.620 回答