以前我使用 Visual Studio 2008 setup.bin 来生成引导程序。我遇到了一些难以解决的问题,于是求助于dotNetInstaller。VS 2008 生成的引导程序的一大优点是我能够控制 .NET 框架的下载位置。通过使用 MSBuild 任务,我可以指定 componentsLocation:
<GenerateBootstrapper
ApplicationFile="$(TargetFileName)" ApplicationName="MyApp"
ApplicationUrl="http://$(InstallerHost)$(DownloadUrl)"
BootstrapperItems="@(BootstrapperFile)"
CopyComponents="True" ComponentsLocation="Relative"
OutputPath="$(OutputPath)"
Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" />
在这里,我可以使用 ComponentsLocation="Relative" 并且引导程序将从我们自己的 Web 服务器下载——这正是我想要的。当我不再拥有 VS 2008 引导程序时,我希望拥有相同的功能。新的 boostrapper 从定义的服务器下载 dotNetFx35setup.exe,但问题是这个“.NET bootstrapper”连接到 Microsoft 的服务器以下载所需的包。尝试运行以下命令:
dotNetFx35setup.exe /?
没有显示任何控制下载位置的选项。Web 服务器将包含 Windows SDK (v6.0A) 在 Bootstrapper\Packages 目录中的包结构。结构如下所示:
Packages
DotNetFX
DotNetFX30
DotNetFX35
DotNetFx35Client
DotNetFx35SP1
.....
当我声明对 .NET Framework 3.5 的依赖时,DotNetFX35 目录结构被复制到 bin/Debug 目录中。我已将此目录复制到 Web 服务器上,它看起来像这样:
DotNetFX35
dotNetFX20
dotNetFX30
dotNetFX35
x64
netfx35_x64.exe
x86
netfx35_x86.exe
dotNetMSP
dotNetFx35setup.exe
其他目录主要包含 MSI、MSP 和 MSU 文件。因此,有关如何控制 .NET 框架下载的任何指示。我不应该使用 dotNetFx35setup.exe 文件吗?如果没有 - 我应该使用哪个?