实验上,我只是从WiX 3.7源代码复制了WixBA项目,将core.csproj中的引用替换为BootstrapperCore,并试图将它与我自己的Bundle一起使用,这对我自己的Manged Bootstrapper工作正常。它建好了。但奇怪的是,当我试图运行它时,它向我展示了安装.NET框架的对话框。我已经安装了.NET framework 4.5。我甚至尝试将WixBA的Targetframework更改为4.5,但结果却相同。
为什么会这样?是否使用了任何安全技术,以便没有其他Bundle可以使用它? 如果是,那么解释是什么?
答案 0 :(得分:1)
.NET安装程序对话框基于随安装程序捆绑的.NET安装程序的版本。查看您的Bundle.wxs
文件,然后在Chain
标记中查找其中一个WiX-provided Package groups。它可能看起来像这样:
<PackageGroupRef Id="NetFx45Web"/>
即使你已经安装了.NET 4.5,它还有很多可能会提示你:
1)PackageGroupRef适用于不同版本的.NET(例如v4.0),而不是您安装的版本。 2)您安装的版本是.NET的“客户端”版本,而不是安装程序使用的“完整”版本。
您还需要确保PackageGroupRef的版本与托管引导程序项目的supportedRuntime
文件中的BootstrapperCore.config
条目以及supportedFramework
中的wix.bootstrapper
条目匹配。 {1}}标记:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<wix.bootstrapper>
<host assemblyName="MyInstallerUI">
<supportedFramework version="v4\Full" />
</host>
</wix.bootstrapper>