1

我有一个关于 WiX 的问题。但让我先描述一下我的情况:我有一个 VS2010 解决方案并添加了一个 WiX (Votive) 项目来进行设置。我正在 TFS 构建服务器上构建此设置。不幸的是,我的所有文件(*.dll、*.sql、*.msi、*.whatever)都被盲目地复制到同一个输出路径中!我在我的 Setup.csproj 文件中添加了一个带有 Move-Task 的 msbuild 目标,以将我的 msi、bat 和 sql 文件移动到单独的文件夹中,但不幸的是,这在 TFS-Build 上不起作用。

这是问题(恕我直言):我在 Votive 中所做的是一个早期阶段。我可以创建文件夹并移动文件,但是我在 csproj 文件中写入的内容是在 TFS 随机获取所有二进制文件并将它们放入放置位置之前完成的。

我如何尝试解决:

  1. 我在 wix2010.targets 文件中搜索了移动或复制命令,其中. 已移至 build_drop 但我无法找到它。
  2. 我查看了构建过程模板,但我不知道语言或语法。有什么关系吗?
  3. 在 Build Defaults 中的 Build defintion 中有复选框“此构建将输出文件复制到放置文件夹”,我必须在其中添加我的放置位置。有什么我可以在这里改变的吗?

我的问题:如何使用 WiX 安装文件创建子文件夹并将某些文件移动到 TFS 构建中?

我希望你能帮忙!提前致谢!

4

2 回答 2

1

如果您只需要移动文件以便安装程序知道在哪里获取它们,那么另一种方法是将 config.wxi 文件添加到您的安装程序,该文件指向源文件的位置。您可以在此处阅读更多信息。尽管使用这种方法,您可能必须在安装程序编译时修改 config.wxi 以指向新的构建位置或放置位置。如果您熟悉 MSBuild,可以使用Tranxition Build Tasks帮助您轻松修改 WiX .wxi 文件。您也可以编写自己的脚本来执行此操作,但无论哪种方式,您都必须从运行构建的构建定义启动脚本或构建任务。

如果您使用的是 Team Build 2010,并且只想在构建过程中复制文件和文件夹,那么您将需要修改运行构建过程的 .xaml Team Build 定义。Ewald Hofman 写了一个关于定制团队构建定义的优秀系列。

于 2012-04-03T13:13:52.547 回答
1

我不确定我是否遵循您的问题,但我认为您在抱怨您的 DLL/EXE/et all 和 MSI 都存档在一个目录中。是的,我也不喜欢这个。

我所做的是创建名为应用程序、合并模块和设置的解决方案平台。然后我告诉 TFS 构建:

发布 | 应用发布 | 合并模块(选项,您可能没有要构建的) 发布 | 设置

这会导致我的所有 DLL/EXE/Content 存档到 \Application\Release,我的所有合并模块存档到 \Merge Modules\Release,我的 MSI 存档到 \Setup\Release

这对我很有效。

于 2012-04-03T15:52:47.303 回答