使WiX中的文件夹在生成丢弃路径上输出



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

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

我如何试图解决:

  1. 我在wix2010.targets文件中搜索了一个移动或复制命令,其中被移到build_drop,但我没能找到它
  2. 我看了构建过程模板,但对语言或语法一无所知。有什么关系吗
  3. 在Build Defaults中的Build定义中,有一个复选框"This Build copies output files to a drop folder",我必须在其中添加我的放置位置。这里有什么我可以换的吗

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

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

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

如果您使用的是Team Build 2010,而您只想在生成过程中复制文件和文件夹,则需要修改运行生成过程的.xaml Team Build定义。埃瓦尔德·霍夫曼写了一个关于自定义团队构建定义的优秀系列。

我不确定我是否理解你的问题,但我想你是在抱怨你的DLL/EXE/et-all和MSI都存档在一个目录中。是的,我也不喜欢这个。

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

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

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

这对我来说很好。

相关内容

  • 没有找到相关文章

最新更新