我正在为具有安装先决条件的应用程序创建一个 .msi 包。我正在使用 Visual Studio 2005 Bootstrapper 来完成这项任务。为此,我做了以下操作:找到文件夹 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ 并为我的先决条件创建了一个文件夹(使其结构与“dotnetfx”相同) ; 创建了“product.xml”和“package.xml”并将它们适当地放置。到目前为止,我保持 xml 文件非常简单以测试安装:
产品.xml
<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="MyPrereq" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="MyPrereq.exe" />
</PackageFiles>
<InstallChecks>
</InstallChecks>
<Commands Reboot="None">
<Command PackageFile="MyPrereq.exe" EstimatedInstallSeconds="90">
<InstallConditions>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<DefaultExitCode Result="Fail" String="GeneralFailure" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
包.xml
<?xml version="1.0" encoding="utf-8"?>
<Package Name="MyPrereq" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">MyPrereq</String>
<String Name="GeneralFailure">A fatal error occurred. The installation failed.</String>
</Strings>
</Package>
现在我可以从列表中添加先决条件并构建我的设置项目。
问题:
构建输出是“setup.exe”、“MyApp.msi”包,以及名为“MyPrereq”的子文件夹,其中包含“MyPrereq.exe”。
我希望构建创建一个“setup.exe”和一个“MyApp.msi”,其中包含“MyPrereq”,没有其他文件/目录。
我知道 .NET 框架是我的应用程序的另一个先决条件,它包含在同一个 .msi 中,因此应该以某种方式实现。
我怎样才能做到这一点?