【发布时间】:2009-02-19 22:45:38
【问题描述】:
我正在为具有安装先决条件的应用程序创建一个 .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>
package.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 中,因此应该可以通过某种方式实现。
我怎样才能做到这一点?
【问题讨论】:
标签: visual-studio-2005 windows-installer bootstrapping