.net - 如何使用完全独立的 .NET 3.5 sp1 安装程序制作 WiX 安装程序?

标签 .net msbuild installation windows-installer offline

我需要将完整的 .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/

相关文章:

powershell - 通过powershell执行时Msbuild日志不起作用

node.js - 使用 NVM (Ubuntu) 安装多个版本的 node.js

.net-core - 使用 dotnetpublish 命令发布时无法排除 web.config 文件

delphi - 如何让MSBuild从DProj文件中获取DCU输出路径?

r - 是否可以在需要/加载后覆盖对包的(重新)安装的阻止?

tensorflow - 属性错误: 'module' object has no attribute 'ceil'

.net - 如何打印StackOverflowException的堆栈跟踪

c# - 为什么选项卡页面主体不使用 .NET 选项卡控件进行更新?

c# - 返回 IList 与 List 或 IEnumerable 与 List<Class> 之间有什么区别。我想知道返回哪个更好

c# - 将程序集安装到 GAC