【问题标题】:Wix Burn, dependency installation failingWix Burn,依赖项安装失败
【发布时间】:2015-04-27 07:57:24
【问题描述】:

我在 Burn 中制作了一个自定义 WPF UI 来安装我的应用程序,在我的笔记本电脑上测试它安装了 .Net,但我已经转移到一个 vanilla 平台并立即遇到了障碍。 Burn 尝试在目标上安装 .Net 框架,但是,当我单击“接受并安装”时,会弹出一个进度对话框,然后关闭并且再也没有听说过。它没有安装任何东西,并且刻录日志没有帮助..我已将其发布在下面。 (我已从日志中删除任何“特定”的内容,因此 <...> 中的任何内容都已删除。 有没有人有任何想法?有点困惑为什么会这样!这是我需要在 WPF 代码中做的事情吗? (即检测包裹?) 干杯 - 克里斯

    [09F0:0FFC][2015-04-27T08:36:15]i001: Burn v3.9.1006.0, Windows v6.1 (Build 7601: Service Pack 1), path: D:\<APP_NAME>.exe, cmdline: '-burn.unelevated BurnPipe.<GUID> <GUID> 3784 '
    [09F0:0FFC][2015-04-27T08:36:15]i000: Initializing string variable 'BURNCOMPUTERNAME' to value 'TemporaryName'
    [09F0:0FFC][2015-04-27T08:36:15]i000: Initializing string variable 'NICNAME' to value 'tmp'
    [09F0:0FFC][2015-04-27T08:36:15]i000: Initializing string variable 'SQLSERVER' to value '<SERVERNAME>'
    [09F0:0FFC][2015-04-27T08:36:15]i000: Initializing string variable 'BURNHMIVARIANT' to value 'STANDARD'
    [09F0:0FFC][2015-04-27T08:36:15]i000: Initializing string variable 'BURNTIMEZONE' to value '(GMT) Dublin, Edinburgh, Lisbon, London'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\ADMINI~1\AppData\Local\Temp\<APP_NAME>_20150427083616.log'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Setting string variable 'WixBundleOriginalSource' to value 'D:\<APP_NAME>.exe'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Setting string variable 'WixBundleOriginalSourceFolder' to value 'D:\'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Setting string variable 'WixBundleName' to value '<APP_NAME>'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Loading prerequisite bootstrapper application because managed host could not be loaded, error: 0x80004001.
    [09F0:0A58][2015-04-27T08:36:16]i000: Setting version variable 'WixBundleFileVersion' to value '1.0.0.0'
    [09F0:0FFC][2015-04-27T08:36:16]i100: Detect begin, 7 packages
    [09F0:0FFC][2015-04-27T08:36:16]i000: Registry key not found. Key = 'SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full'
    [09F0:0FFC][2015-04-27T08:36:16]i000: Registry key not found. Key = 'SOFTWARE\Microsoft\Expression\Blend\3.0\Toolbox\WPF\v3.5\WPFToolkit'
    [09F0:0FFC][2015-04-27T08:36:16]i102: Detected related bundle: <GUID>, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None
    [09F0:0FFC][2015-04-27T08:36:16]i102: Detected related bundle: <GUID>, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: dotNetFx40_Full_x86.exe, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: WindowsXP_KB942288_v3_x86.exe, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: WindowsServer2003_KB942288_v4_x64.exe, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: WindowsXP_KB926139_v2_x86_ENU.exe, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: WindowsServer2003_KB926139_v2_x86_ENU.exe, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: WPFToolkit.msi, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i101: Detected package: <APP_INSTALL>.msi, state: Absent, cached: None
    [09F0:0FFC][2015-04-27T08:36:16]i199: Detect complete, result: 0x0
    [09F0:0FFC][2015-04-27T08:36:18]i200: Plan begin, 7 packages, action: Install
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition 'NOT (Net4FullVersion = "4.0.30319")' evaluates to true.
    [09F0:0FFC][2015-04-27T08:36:18]w321: Skipping dependency registration on package with no dependency providers: dotNetFx40_Full_x86.exe
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition '(VersionNT = v5.1) AND NOT (VersionMsi >= v4.5) AND NOT (VersionNT64)' evaluates to false.
    [09F0:0FFC][2015-04-27T08:36:18]w321: Skipping dependency registration on package with no dependency providers: WindowsXP_KB942288_v3_x86.exe
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition '(VersionNT = v5.2 OR VersionNT = v5.1) AND NOT (VersionMsi >= v4.5) AND (VersionNT64)' evaluates to false.
    [09F0:0FFC][2015-04-27T08:36:18]w321: Skipping dependency registration on package with no dependency providers: WindowsServer2003_KB942288_v4_x64.exe
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition 'VersionNT = v5.1' evaluates to false.
    [09F0:0FFC][2015-04-27T08:36:18]w321: Skipping dependency registration on package with no dependency providers: WindowsXP_KB926139_v2_x86_ENU.exe
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition 'VersionNT = v5.2' evaluates to false.
    [09F0:0FFC][2015-04-27T08:36:18]w321: Skipping dependency registration on package with no dependency providers: WindowsServer2003_KB926139_v2_x86_ENU.exe
    [09F0:0FFC][2015-04-27T08:36:18]i052: Condition 'NOT (WPFToolkit35 = "C:\Program Files\WPF Toolkit\v3.5.50211.1\")' evaluates to true.
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: dotNetFx40_Full_x86.exe, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: WindowsXP_KB942288_v3_x86.exe, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: WindowsServer2003_KB942288_v4_x64.exe, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: WindowsXP_KB926139_v2_x86_ENU.exe, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: WindowsServer2003_KB926139_v2_x86_ENU.exe, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: WPFToolkit.msi, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i201: Planned package: <APP_INSTALL>.msi, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i207: Planned related bundle: <GUID>, type: Upgrade, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i207: Planned related bundle: <GUID>, type: Upgrade, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
    [09F0:0FFC][2015-04-27T08:36:18]i299: Plan complete, result: 0x0
    [09F0:0FFC][2015-04-27T08:36:18]i300: Apply begin
    [0EC8:0068][2015-04-27T08:36:18]i360: Creating a system restore point.
    [0EC8:0068][2015-04-27T08:36:18]w363: Could not create system restore point, error: 0x800703fd. Continuing...
    [0EC8:0068][2015-04-27T08:36:18]i000: Caching bundle from: 'C:\Users\ADMINI~1\AppData\Local\Temp\<GUID>\.be\<APP_NAME>.exe' to: 'C:\ProgramData\Package Cache\<GUID>\<APP_NAME>.exe'
    [0EC8:0068][2015-04-27T08:36:18]i320: Registering bundle dependency provider: <GUID>, version: 1.0.0.0
    [09F0:0FFC][2015-04-27T08:36:18]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No
    [09F0:0FFC][2015-04-27T08:36:18]i500: Shutting down, exit code: 0x0
    [09F0:0FFC][2015-04-27T08:36:18]i000: The prerequisites were already installed. The bootstrapper application will not be reloaded to prevent an infinite loop.
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: BURNCOMPUTERNAME = TemporaryName
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: BURNHMIVARIANT = STANDARD
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: BURNTIMEZONE = (GMT) Dublin, Edinburgh, Lisbon, London
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: NICNAME = tmp
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: SQLSERVER = <SERVER_NAME>
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: VersionMsi = 5.0.0.0
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: VersionNT = 6.1.0.0
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleAction = 4
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleElevated = 1
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleFileVersion = 1.0.0.0
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleInstalled = 0
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleLog = C:\Users\ADMINI~1\AppData\Local\Temp\<APP_NAME>_20150427083616.log
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleManufacturer = <MANUF_NAME>
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleName = <APP_NAME>
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleOriginalSource = D:\<APP_NAME>.exe
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleOriginalSourceFolder = D:\
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleProviderKey = <GUID>
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleTag = 
    [09F0:0FFC][2015-04-27T08:36:18]i410: Variable: WixBundleVersion = 1.0.0.0
    [09F0:0FFC][2015-04-27T08:36:18]i007: Exit code: 0x0, restarting: No

【问题讨论】:

  • 我认为它与“先决条件引导程序”有关,但我无法弄清楚..我没有摆弄那一点,甚至尝试将 .net 框架添加为包组并引用wix 变量“WixMbaPrereqPackageId”
  • "vanilla platform"
  • 还有,原版机的操作系统是什么?
  • @MichalHosala 你说得对,应该提供该信息,它是 Windows 嵌入式 7 图像。此外,草皮法和所有,我想我可能已经找到了问题,但我只是想在我进一步发布任何内容之前先对其进行测试,我认为(初步猜测)这与引起它的 InstallCondition 和 DetectCondition 有关不安装。感谢您回复我,我会在进一步测试后发布更多信息...

标签: c# wpf wix installation burn


【解决方案1】:

好的,所以我相信我想通了.. 我如何构建捆绑 xml 存在问题。 由于安装程序本身依赖于.Net,(正如互联网上许多地方提到的那样)这个代码sn-p必须放在一个片段中......:

<!-- This defines the Installation packages that the main Burn ui depends on -->
<!-- think of this as the Installer prerequisites installer. -->
<PackageGroup Id="Netfx4Full">

  <ExePackage Id="Netfx4Full"
              InstallCondition="1"
              InstallCommand="/q /norestart"
              Cache="no"
              Compressed="yes"
              PerMachine="yes"
              Permanent="yes"
              Vital="yes" 
              DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x54FullVersion)"
              SourceFile="$(var.PreReqsPath).NET\v4.0\dotNetFx40_Full_x86.exe" />

</PackageGroup>

这个包依赖于这些注册表项搜索:

<util:RegistrySearch Root="HKLM"
                     Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                     Value="Version"
                     Variable="Netfx4FullVersion" />
<util:RegistrySearch Root="HKLM"
                     Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                     Value="Version"
                     Variable="Netfx4x64FullVersion"
                     Win64="yes" />

还需要包含这些 Wix 变量:

<WixVariable Id="WixMbaPrereqLicenseUrl" Value="" />
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />

哦,最后一点,包必须在链中首先被引用,

<Chain>
  <PackageGroupRef Id="Netfx4Full"/>

我遇到的主要问题是没有“InstallCondition”作为“DetectCondition”,一旦它们都在,安装开始正常运行。

这有点令人讨厌,因为我正在复制我在网上找到的示例。希望这个经过全面测试(并且可以工作..)的示例将在未来为人们提供相同问题的解决方案。

在任何情况下都感谢您的帮助,令人沮丧的是,我为此挣扎了三天,然后几乎在我发布到 StackOverflow 后就修复了。这就是生活! ;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多