是否可以避免本地安装并使用WiX的平面文件?

Zac*_*ame 3 msbuild automation wix

背景:

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

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

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

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

假设/约束上

  • 我目前正在使用WiX 3测试版,但如果有2.0或3.0的方法请回复
  • 我正在使用Visual Studio 2005
  • IDE语法突出显示不是必需的.

题:

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

也可以看看:

ant*_*tik 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>

正如你所看到的WixToolPath,WixTasksPathWixTargetsPath指示反映我已经指示你复制的文件夹的位置.

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

使用此方法,所描述的WiX目录大约为9MB.