2013-07-01 46 views
1

我正在尝试使用可用于不同配置的WiX Toolset v3.7.1224.0创建安装程序。我已经有一个在VS2010中使用Votive构建的工作安装程序。安装程序在WixSqlExtension的帮助下创建一个MSSQL数据库。如何将包含多个文件的目录添加到wix项目输出文件夹?

数据库创建完成并指定了所有表后,我希望安装程序用一些值初始化表。目前这些值作为SqlString元素编译到msi中。我想将这些字符串外化为一个配置文件。配置文件将存储使用InsertTemporary()方法临时插入到SqlString表中的字符串以及定制中的SOURCEDIR属性。我还没有决定配置文件的格式,但它会是一个xml文件或一个简单的文本文件,其中每个sql字符串分别位于自己的行中,或者分别位于其自己的元素中,因此我可以解析文件并为文件中的每个条目添加一个临时记录。

我想将这个配置文件集成到我的项目结构中。它应该被复制到项目的输出目录中,但不应该安装在最终用户的计算机上。我认为我可以通过将文件添加到我的项目中,然后在Votive中更改文件的高级属性来实现此目的。我将“构建操作”指定为“内容”,并将“复制到输出目录”指定为“始终”。但是当我构建项目时,该文件不存在于项目的输出目录中。充其量,我希望能够将包含多个配置文件的目录添加到项目输出目录中。

有没有什么办法可以与Votive和Wix一起实现?这可能与MSBuild?我将如何修改.wixproj文件以创建目录和文件?

回答

1

确实,解决方案是修改该项目的wixproj文件。 Wix使用MSBuild,对于MSBuild的WIX目标的简要描述可以在here找到。要编辑Visual Studio中的wixproj文件,请打开Wix项目的上下文菜单并将其卸载。打开卸载项目的上下文菜单并选择edit projectname.wixproj

复制文件的项目已编译后,与Name属性设置为AfterBuildTarget元素已被添加到wixproj文件的Project元素。要复制文件,请为要复制到输出文件夹的每个文件指定一个Copy元素。将Copy元素放置在您的Target元素内。阅读Copy语法here。 MSBuild可以做更多的事情,所以看看reference

相关问题