【问题标题】:SQL CE 4.0 as a InstallShield PrerequisiteSQL CE 4.0 作为 InstallShield 先决条件
【发布时间】:2012-02-29 04:05:09
【问题描述】:

我正在制作自己的 prq 文件,以便通过我的 WPF 应用程序安装来执行 SQL CE 4.0 安装。安装程序一直失败,我不知道为什么。看起来它试图运行 CE exe,但随后会出现一个 Windows Installer 帮助窗口,其中包含所有这些命令行帮助选项。我单击确定,然后它说安装 CE 失败。我不知道如何确定出了什么问题。

这是我的 prq 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
<conditions>
    <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition>
</conditions>
<files>
    <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SSCERuntime_x86-ENU.exe" URL="http://www.microsoft.com/download/en/details.aspx?id=17876" FileSize="0,0"></file>
</files>
<execute file="SSCERuntime_x86-ENU.exe" cmdline="/passive /norestart" cmdlinesilent="/passive /norestart"></execute>
<properties Id="{F7BF54C1-CA2C-4410-98DB-480769CE6547}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0."></properties>
</SetupPrereq>

任何帮助将不胜感激。

【问题讨论】:

  • 您可能还想考虑 SQL CE 提供的私有部署选项。我记得(我在 SO 附近某处的回答中记录了)它是少数 DLL 和 App.Config 中的一些设置。这允许您在单个 MSI 中完成所有操作,而无需链接其他 MSI。
  • 我看了下私有部署,好像太毛了。做错事的可能性很大。我最终删除了 cmdline 选项,安装程序只是启动 CE 安装提示,所以它工作正常。
  • 它实际上工作得很好。事实上,在过去的几天里,我在这里看到了一个新的问题/答案,该人说他们进行了私有部署,这真的很简单而且效果很好。不管怎样,选择权在你。

标签: sql-server-ce windows-installer installshield


【解决方案1】:

针对rishiJasapara的评论,我根据之前的回答做了脚本。

想法是一样的,创建两个脚本,一个用于 x86,另一个用于 x64 平台。 您必须在 InstallShield 项目中选择这两个先决条件,但使用下面列出的目标计算机安装页面中的脚本,您将看到唯一与计算机处理器架构相对应的一个。

Microsoft SQL CE 4.0 x86.prq:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition>
    </conditions>
    <operatingsystemconditions>
        <operatingsystemcondition CSDVersion="" Bits="1"></operatingsystemcondition>
    </operatingsystemconditions>
    <files>
        <file LocalFile=".\SSCERuntime_x86-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x86-ENU.exe" CheckSum="0A55733CF406FBD05DFCFF5A27A0B4F7" FileSize="0,2379544"></file>
    </files>
    <execute file="SSCERuntime_x86-ENU.exe"></execute>
    <properties Id="{2754916B-119B-4428-9F94-DC9E45072CCC}"></properties>
    <behavior Failure="4" Reboot="2"></behavior>
</SetupPrereq>

Microsoft SQL CE 4.0 x64.prq:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition>
    </conditions>
    <operatingsystemconditions>
        <operatingsystemcondition CSDVersion="" Bits="2"></operatingsystemcondition>
    </operatingsystemconditions>
    <files>
        <file LocalFile=".\SSCERuntime_x64-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x64-ENU.exe" CheckSum="A417082ECAEDD95AFB41F73DC140C350" FileSize="0,2621240"></file>
    </files>
    <execute file="SSCERuntime_x64-ENU.exe"></execute>
    <properties Id="{7CB7BE3C-614A-403F-94D9-5652285A3EDF}"></properties>
    <behavior Failure="4" Reboot="2"></behavior>
</SetupPrereq>

如您所见,主要区别在于确定了正确的 SQL CE 安装包的附加“操作系统条件”。

我在 Windows 7 32 位和 64 位系统上对其进行了测试,它实际上运行良好。

【讨论】:

    【解决方案2】:

    我能够让它看起来像这样工作

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition>
    </conditions>
    <files>
        <file LocalFile=".\SSCERuntime_x86-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x86-ENU.exe" FileSize="0,0"></file>
    </files>
    <execute file="SSCERuntime_x86-ENU.exe" cmdline="/i /passive" cmdlinesilent="/i /passive"></execute>
    <properties Id="{05DCCDB5-57E0-4314-A016-874F228A8FAD}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0 x86."></properties>
    </SetupPrereq>
    

    x64 脚本

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" FileName="DesktopRuntimeVersion" ReturnValue="4.0.8482.1"></condition>
    </conditions>
    <files>
        <file LocalFile=".\SSCERuntime_x64-ENU.exe" URL="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x64-ENU.exe" FileSize="0,0"></file>
    </files>
    <execute file="SSCERuntime_x64-ENU.exe" cmdline="/i /passive" cmdlinesilent="/i /passive"></execute>
    <properties Id="{05DCCDB5-57E0-4314-A016-874F228A8FAD}" Description="This prerequisite installs the Microsoft SQL Server Compact 4.0 x64."></properties>
    </SetupPrereq>
    

    【讨论】:

    • @Enzero:我为 x86 和 x64 制作了 2 个不同的 PRQ 文件。但是在安装时,它会根据需要显示这两个文件。如何跳过 x64 终端的 x86 文件安装?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多