我正在使用 WiX 为我的 wpf 应用程序创建安装程序(我是新手)。我需要使用在线安装检测并安装 .Net core 6.0.0 和 Windows Desktop Runtime 6.0.33。使用 WiX 安装程序提供离线安装会增加其大小,并使已经拥有框架的用户下载大型安装程序。我需要使用这两个在线安装程序。
这是我使用离线设置的代码:
<Fragment>
<PackageGroup Id="NetCoreInstaller">
<ExePackage Id="NetCoreInstaller"
SourceFile="dotnet-runtime-6.0.30-win-x64.exe"
Vital="yes"
DownloadUrl="http://localhost:59854/Desktop/dotnetfx40_client_x86_x64.exe"
Compressed="yes"
UninstallArguments="/uninstall"
InstallArguments="/quiet"
DetectCondition="NETCORE60FOUND" />
<ExePackage Id="WindowsDesktopRuntime"
SourceFile="windowsdesktop-runtime-6.0.33-win-x64.exe"
Vital="yes"
DownloadUrl="https://download.visualstudio.microsoft.com/download/pr/0f71eaf1-ce85-480b-8e11-c3e2725b763a/9044bfd1c453e2215b6f9a0c224d20fe/dotnet-sdk-6.0.100-win-x64.exe"
Compressed="yes"
UninstallArguments="/uninstall"
InstallArguments="/quiet"
DetectCondition="WINDOWSDESKTOP60FOUND" />
</PackageGroup>
</Fragment>
<Fragment>
<Property Id="NETCORE60FOUND">
<RegistrySearch Id="NetCore60"
Root="HKLM"
Key="SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App"
Name="6.0.0"
Type="raw" />
</Property>
<Property Id="WINDOWSDESKTOP60FOUND">
<RegistrySearch Id="WindowsDesktop60"
Root="HKLM"
Key="SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.WindowsDesktop.App"
Name="6.0.0"
Type="raw" />
</Property>
</Fragment>
<Fragment>
<InstallExecuteSequence>
<Custom Action="NetCore60Search" After="AppSearch" />
<Custom Action="WindowsDesktop60Search" After="AppSearch" />
</InstallExecuteSequence>
</Fragment>
检测应该与您已有的相同。据我所知,没有可以在应用程序中捆绑的在线“安装程序”,但有一些非常简单的在线安装选项。
通过互联网访问,您可以让安装程序运行 winget 命令,或者将 dotnet-install powershell 脚本嵌入到安装程序中并让它运行。这两者都应该实现在线安装,而无需打包庞大的安装程序。
对这些选项进行了解释,脚本下载可在 https://dotnet.microsoft.com/en-us/download/dotnet/6.0 适用于 net 6。