我该死的使用 wix 和 wixtoolset 3.11 构建设置。是的,它是地狱。使用此工具集做简单的事情并阅读手册会消耗大量时间和金钱。
我的目标:安装程序应该下载并安装 .NET Framework 4.5。这是声明:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<?include ApplicationData.wxi?>
<Fragment>
<WixVariable Id="NetFx45WebInstallCondition" Value="" Overridable="yes" />
<!-- install dotnet framework -->
<!-- https://stackoverflow.com/questions/42720958/web-download-of-vcruntime140-with-wix-burn/42726779 -->
<PackageGroup Id="NetFx45Web">
<ExePackage
InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx45FullLog].html""
RepairCommand="/q /norestart /repair /ChainingPackage "[WixBundleName]" /log "[NetFx45FullLog].html""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx45FullLog].html""
PerMachine="yes"
Id="NetFx45Web"
Cache="yes"
Permanent="yes"
Vital="yes"
Protocol="netfx4"
DownloadUrl="https://www.microsoft.com/de-ch/download/confirmation.aspx?id=30653"
DetectCondition="false"
Compressed="no"
InstallCondition="!(wix.NetFx45WebInstallCondition)"
Name="Framework\dotNetFx45_Full_setup.exe"
/>
</PackageGroup>
</Fragment>
</Wix>
我不想将任何 .NET Framework 安装程序嵌入到我的设置中,但无论出于何种原因,都需要属性“名称”或“源路径”之一。我使用属性“SourcePath”或“Name”,这两个声明都需要一个现有文件的路径。是的,当然,这是真的。那是维克斯。
当我对路径使用“SourceFile”时,Visual Studio 中的编译器运行成功,但在未安装 DotNet Framework 4.5 的目标系统上,没有任何反应。不会安装任何框架。好的,然后我尝试使用属性“名称”并传递值“Framework\dotNetFx45_Full_setup.exe”。编译设置时,我收到以下错误:
系统找不到文件“SourceDir\Framework\dotNetFx45_Full_setup.exe”
嗯...什么是SourceDir,为什么我需要删除一个路径,或者我希望安装程序下载文件?很多问题,但让我们从第一个开始:
如何解决有关神秘的“SourceDir”的问题?