我的问题是,我不知道在.net framework 4.5的ItemGroup / BootstrapperFile中放入什么。 这是我的文件
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BootstrapperFile Include="Microsoft.Windows.Installer.4.5" >
<ProductName>Windows Installer 4.5</ProductName>
</BootstrapperFile>
<!--<BootstrapperFile Include="DotNetFX40" >
<ProductName>Microsoft DotNet Framework 4.5 SP1</ProductName>
</BootstrapperFile>-->
</ItemGroup>
<!-- from http://stackoverflow.com/questions/346175/use-32bit-program-files-directory-in-msbuild
-->
<PropertyGroup>
<ProgramFiles32>$(MSBuildProgramFiles32)</ProgramFiles32>
<ProgramFiles32 Condition=" '' == '$(ProgramFiles32)'">$(ProgramFiles%28x86%29)</ProgramFiles32>
<ProgramFiles32 Condition=" '' == '$(ProgramFiles32)'">$(ProgramFiles)</ProgramFiles32>
</PropertyGroup>
<Target Name="SetupExe">
<GenerateBootstrapper
ApplicationFile="C:\Projects\MySetup\MySetup\bin\Debug\MySetup.msi"
ApplicationName="MyApplication"
Culture="en"
BootstrapperItems="@(BootstrapperFile)"
ComponentsLocation="HomeSite"
Path="$(ProgramFiles32)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\"
OutputPath="output"/>
</Target>
</Project>
我已经在互联网上读到,必须引用的是Windows SDKs文件夹中的目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
但是,当引导程序应该下载依赖项时,给出本地文件夹的用途是什么?
有人知道在BootstrapperFile中使用的引用吗?
谢谢!
答案 0 :(得分:2)
BootstrapperFile元素标识@Path文件夹的Packages子文件夹中的包。其下的product.xml文件指定了所需的文件以及可以从中下载的文件(如果有的话)。它们必须在构建时存在的原因是setup.exe可以包含它们的校验和以在安装时进行验证。
下载取决于包作者(当然还有网站所有者)。如果您自己编写,您可能会发现Bootstrapper Manifest Generator很有用(如果您可以在Internet上找到它 - 所有官方链接都已死)。