我需要将完整的 .NET 3.5 sp1 安装程序包含在我的安装程序中,它位于 WiX 中。
我需要那个 boostrapper 是完全独立的,完全没有网络访问权限。只是不允许此安装程序需要网络;我们在外蒙古有客户(我是认真的,不只是使用地名,因为它很偏远)我们向他们运送 CD,因为他们根本无法访问互联网。
WiX 教程指出:
<Target Name="AfterBuild">
<GenerateBootstrapper ApplicationFile="$(TargetFileName)"
ApplicationName="My Application Name"
BootstrapperItems="@(BootstrapperFile)"
ComponentsLocation="Relative"
CopyComponents="True"
OutputPath="$(OutputPath)"
Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"/>
</Target>
上面的 bootstrap 需要网络。我如何制作不安装的安装程序?
最佳答案
<Project ToolsVersion="3.5"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
<ProductName>.NET Framework 3.5 SP1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
<ProductName>Windows Installer 3.1</ProductName>
</BootstrapperFile>
</ItemGroup>
<Target Name="setup">
<GenerateBootstrapper
ApplicationFile="myproduct.msi"
ApplicationName="myproduct"
BootstrapperItems="@(BootstrapperFile)"
Path="$(bootstrapperPackagesFolder)"
ComponentsLocation="Relative"
OutputPath="$(cddir)"
Culture="en"/>
</Target>
</Project>
在您的情况下,
$(bootstrapperPackagesFolder)
变量将指向 C :\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\
. $(cddir)
变量是您编写安装 CD 内容的文件夹。GenerateBootStrapper
任务不仅会生成一个 bootstrap exe,还会复制一个 DotNetFX35SP1
和一个 WindowsInstaller3_1
文件夹到同一位置。在安装过程中, bootstrap exe 将查找这些文件夹并使用其中的文件,而不是下载它们。我不确定我的例子是否与你已经在做的不同;也许您只是忘记包含
DotNetFX35SP1
安装光盘上的文件夹?
关于.net - 如何使用完全独立的 .NET 3.5 sp1 安装程序制作 WiX 安装程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128734/