我很難獲得一個以.NET 4.5爲工作目標的WiX自定義引導程序應用程序。WiX自定義引導程序應用程序和.NET 4.5
我在我的Bundle.wxs中有以下行。
<PackageGroupRef Id="NetFx45Web" />
My BootstrapperCore.config如下所示。
<configuration>
<configSections>
<sectionGroup name="wix.bootstrapper" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
<section name="host" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
</sectionGroup>
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<wix.bootstrapper>
<host assemblyName="FSCustomBA" />
</wix.bootstrapper>
</configuration>
我已經嘗試過多種變化。
例如,我也嘗試了以下內容。
<host assemblyName="FSCustomBA">
<supportedFramework version="v4\Full" />
<supportedFramework version="v4\Client" />
</host>
以下。
<host assemblyName="FSCustomBA">
<supportedFramework version="v4.5\Full" />
<supportedFramework version="v4.5\Client" />
</host>
以下。
<host assemblyName="FSCustomBA">
<supportedFramework version="v4.5" />
</host>
以下。
<host assemblyName="FSCustomBA">
<supportedFramework version="v4.5\Full" />
</host>
以下。
<host assemblyName="FSCustomBA">
<supportedFramework version="v4.5\Client" />
</host>
不管是什麼我都試過了,當我在沒有安裝.NET 4.5的系統上運行我的安裝包,提示我安裝.NET 4.5。一旦我按下「同意並安裝」按鈕,安裝程序包就會崩潰。當我嘗試再次運行安裝程序包時,它會在顯示按鈕之前掛起。即使重新啓動後,它也會掛起。我需要從系統映像恢復我的系統,然後再次運行。
誰能告訴我我做錯了什麼?
我使用的是WiX 3.10。
到目前爲止,我唯一的線索是關於結果日誌文件中的以下行。
[1A14:1778][2016-06-28T10:01:17]i000: The prerequisites were already installed. The bootstrapper application will not be reloaded to prevent an infinite loop.
這是在Stack Overflow的另一個問題,Prerequisite bootstrapper application fails to install .NET 4.5。這個問題的答案之一表明答案是在BootstrapperCore.config文件的supportedRuntime元素中設置sku值。但是,我已經做到了。其他事情正在發生。
我對發生了什麼有一個線索。我遵循了WiX的一部分WixBA和TestBA應用程序的例子,它是在模式$ {ProjectName} .BootstrapperCore.config之後命名BootstrapperCore.config文件。我沒有意識到的是,當通過Payload元素將此文件包含在捆綁包中時,您需要使用Name屬性將其重命名爲BootstrapperCore.config。 –
現在我得到另一個錯誤:「0x80131040:找到的程序集的清單定義與程序集引用不匹配。」 –
通過將與我的Custom BA關聯的Payload元素的SuppressSignatureVerification屬性設置爲yes,我解決了錯誤「0x80131040:定位的程序集清單定義與程序集引用不匹配」。我認爲這只是必要的,因爲我正在使用測試(自簽名)證書而不是可信證書。 –