gpt4 book ai didi

.net-3.5 - 为简化 Vista(及更高版本)机器的 .NET 3.5 安装所需的 WiX 更改

转载 作者:行者123 更新时间:2023-12-04 21:43:36 24 4
gpt4 key购买 nike

我们决定冒险一试,要求我们的用户先安装 .NET 3.5,然后才能使用我们的媒体中心插件。

我想确保安装体验尽可能流畅,并且我们的安装程序保持小巧。

我需要对我的 WiX file 进行哪些更改?支持以下场景?代码示例将不胜感激。

  • 用户安装了 .Net framework 3.0,交互式安装。

期望的行为:系统会提示用户一个窗口,告诉她她需要一个新版本的框架,如果她接受,则会下载 dotNetFx35setup.exe (2.7 MB),然后执行。最后,安装继续。

  • 用户安装了 .Net framework 3.0,非交互式安装。

背景:为了促进媒体中心内的自动更新,如果用户选择升级现有版本,我们可能会执行“msiexec.exe/qb/i mediabrowser.msi”。

期望的行为:系统会提示用户一个窗口,告诉她需要新版本的框架,如果她接受,则会下载 dotNetFx35setup.exe (2.7 MB),然后执行。最后,安装以静默方式进行。

是否有任何其他开源项目按照这些思路实现了某些东西?

相关问题:是.NET 3.5 a reasonable pre-requisite for a media center plugin?

最佳答案

我相信安装 .NET 属于 setup.exe Bootstrap 的职责,在您的 msi 启动之前。 WIX(目前)还没有自己的方式来生成 Bootstrap (或者即使有,也没有记录在 wix.chm 中)。相反,您可以使用 GenerateBootStrapper msbuild 任务来生成 setup.exe。查看 wix 文档中的主题“How To: Install the .NET Framework Using a Bootstrapper”。要通过下载安装 .NET 3.5 SP1,您的 msbuild 文件应如下所示:

<Project ToolsVersion="3.5"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
<ProductName>Windows Installer 3.1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
<ProductName>Microsoft DotNet Framework 3.5 SP1</ProductName>
</BootstrapperFile>
</ItemGroup>

<Target Name="SetupExe">
<GenerateBootstrapper
ApplicationFile="myproduct.msi"
ApplicationName="myproduct"
BootstrapperItems="@(BootstrapperFile)"
Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"
OutputPath="path/to/put/setup/"
Culture="en"/>
</Target>

</Project>

如果将以上内容保存在 setup.msbuild 文件中,则可以通过调用build设置

C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe setup.msbuild

您也可以从安装 CD 安装 .NET 而不是下载它。只需添加 ComponentsLocation="Relative"到 GenerateBootstrapper 的属性。

关于.net-3.5 - 为简化 Vista(及更高版本)机器的 .NET 3.5 安装所需的 WiX 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/624614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com