【问题标题】:Make Folder in WiX Output on Build Drop Path在构建放置路径上的 WiX 输出中创建文件夹
【发布时间】:2012-04-03 07:57:14
【问题描述】:

我有一个关于 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 定义中,有一个复选框“此构建将输出文件复制到一个放置文件夹”,我必须在其中添加我的放置位置。有什么我可以在这里改变的吗?

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

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

【问题讨论】:

    标签: msbuild wix tfsbuild votive


    【解决方案1】:

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

    如果您使用的是 Team Build 2010,并且只想在构建过程中复制文件和文件夹,那么您将需要修改运行构建过程的 .xaml Team Build 定义。 Ewald Hofman 在Customizing Team Build definitions 上写了一篇精彩的系列文章。

    【讨论】:

      【解决方案2】:

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

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

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

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

      这对我很有效。

      【讨论】:

        猜你喜欢
        • 2012-06-10
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 2019-05-17
        • 1970-01-01
        • 2020-05-14
        • 1970-01-01
        相关资源
        最近更新 更多