C# Wix刻录,依赖项安装失败

C# Wix刻录,依赖项安装失败,c#,wpf,wix,installation,burn,C#,Wpf,Wix,Installation,Burn,我在Burn中制作了一个定制的WPF UI来安装我的应用程序,在我的笔记本电脑上进行测试,就像它安装了.Net一样,这很好,但我已经转移到了一个普通的平台上,并立即遇到了一个障碍。Burn试图在目标上安装.Net framework,但是,当我单击“接受并安装”时,会弹出一个进度对话框,然后关闭,从此再也听不到任何消息。它没有安装任何东西,而且刻录日志也没有任何帮助。。我已经把它贴在下面了。我已经从日志中删除了任何messpecific,因此中的任何内容都已删除。 有人有什么想法吗?有点困惑为什

我在Burn中制作了一个定制的WPF UI来安装我的应用程序,在我的笔记本电脑上进行测试,就像它安装了.Net一样,这很好,但我已经转移到了一个普通的平台上,并立即遇到了一个障碍。Burn试图在目标上安装.Net framework,但是,当我单击“接受并安装”时,会弹出一个进度对话框,然后关闭,从此再也听不到任何消息。它没有安装任何东西,而且刻录日志也没有任何帮助。。我已经把它贴在下面了。我已经从日志中删除了任何messpecific,因此中的任何内容都已删除。 有人有什么想法吗?有点困惑为什么会这样!这是我在WPF代码中需要做的事情吗?i、 e.在包裹检测方面? 干杯-克里斯

    [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

好吧,我想我已经明白了。。 在我如何构建捆绑xml时存在一个问题。 由于安装程序本身依赖于.Net,正如internet上许多地方提到的,此代码段必须放在片段中..:

<!-- 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后就立即修复了。。这就是生活

我认为这与先决条件引导程序有关,但我想不出来。。我还没有摆弄过这一点,甚至尝试将.net framework添加为一个包组,并在wix变量WixMbaPrereqPackageIdvanilla platform中引用。还有,什么是vanilla machine的操作系统?@MichalHosala你是对的,应该提供这些信息,这是一个windows嵌入式7映像。另外,sods法律和所有,我想我可能已经发现了问题,但我只是想在发布任何进一步的内容之前先测试它,我想初步的怀疑是,这与InstallCondition和DetectCondition有关,导致它无法安装。谢谢你回复我,我会在进一步测试后发布更多。。。