3

背景:

我总是试图在我的项目中确保以下原则:

重新结帐后,开发人员应该能够仅使用组合文件夹的内容来完成所有与项目相关的任务。

显然,这并不总是可行的(例如用于 Windows 开发的 Visual Studio)。但是,我真的不喜欢安装任何特定于项目的第三方库或工具,如 log4net、NHibernate、NUnit 等。这有很多原因,包括:

  • 对于给定的开发机器,您可能会处理多个不同的项目,所有这些项目都利用相同第三方库或工具的不同版本。
  • 最小化环境设置要求使得设置新的开发人员或机器更加容易
  • 有助于更轻松地维护自动化构建

假设/限制

  • 我目前正在使用 WiX 3 beta,但如果有 2.0 或 3.0 的方法,请回复
  • 我正在使用 Visual Studio 2005
  • IDE 语法高亮不是必需的。

问题:

是否可以避免本地安装 WiX 工具集而使用平面文件?如果是这样,请解释如何。

也可以看看:

4

2 回答 2

6

首先,构建您的 WiX 安装程序:

  • 在 Visual Studio 2005 中创建一个新的 WiX 安装程序项目。
  • 相应地构建您的 WiX XML。

现在,要将 WiX 工具包集成到您的源代码树中:

  • 复制c:\Program Files\Windows Installer XML v3\bin到源代码树中的子目录。我使用WiX\bin相对于我的 .wixproj 文件。
  • 复制c:\Program Files\MSBuild\WiX\v3.0\到源代码树中的子目录。我使用WiX\v3.0相对于我的 .wixproj 文件。
  • 添加以下代码或替换以下行:

<WixTargetsPath Condition=" '$(WixTargetsPath)' == ''>$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets</WixTargetsPath>

使用以下几行:

<WixToolPath>$(MSBuildProjectDirectory)\WiX\bin\</WixToolPath> <WixTasksPath>$(MSBuildProjectDirectory)\WiX\v3.0\WixTasks.dll</WixTasksPath> <WixTargetsPath>$(MSBuildProjectDirectory)\WiX\v3.0\Wix.targets</WixTargetsPath>

如您所见,WixToolPathWixTasksPath指令WixTargetsPath反映了我指示您复制的文件夹的位置。

  • 将您的 .wixproj 重命名为 .csproj。这可确保 Visual Studio 不会被 .wixproj 文件混淆,但由于 .wixproj 是有效的 MSBuild 项目,Visual Studio 将能够使用它。

使用这种方法,所描述的 WiX 目录大约有 9MB 大。

于 2009-02-03T21:54:08.133 回答
2

我知道使用 WiX 2,您只需将可执行文件和 dll 下载到项目所在的任何目录即可。然后创建一个 .bat 文件以使用构建安装程序所需的参数运行烛台.exe 和 light.exe。

这样,您的所有项目都可以拥有自己的 WiX 版本,每个项目的磁盘驱动器命中率仅为 4 兆。

我不是很肯定,但我认为你可以用 WiX 3 做同样的事情。

于 2009-02-03T19:44:18.893 回答