我编写了一个应用程序及其WiX安装程序,并使用subversion将其置于版本控制之下.当WiX安装程序构建时,我希望其版本号是应用程序的当前构建版本.我该如何做到这一点?我使用c#来编写应用程序代码.
NB我正在使用ccnet来构建这个项目
你可以使用产品/ @版本="!(bind.FileVersion.FileId)"(替换FileId
用Id
的文件,从中你想要得到的版本号),并light.exe将的版本填充值文件引用的FileId
.
我在我的一个项目中通过编写预处理器扩展来从可执行文件中读取文件版本.所以WiX文件看起来像:
我在CodePlex上发布了代码:http: //wixfileversionext.codeplex.com/
如果有人正在寻找一个实际的XML示例,这适用于.NET程序集(并且您不必执行Assembly或KeyPath属性).我与[...]占位符取消了不相关的代码:
[...] [...] [...]
这是一个非常简单的方法,让你的Bootstrapper Bundle版本与你的MyApp AssemblyVersion匹配使用BeforeBuild Target
和DefineConstants
.
Bundle.wxs:
Bootstrapper.wixproj:
BuildVersion=%(AssemblyVersion.Version)
错误LGHT0298:未解析的绑定时变量
我尝试了这个并且不能推荐这个 - 将它与TeamCity的装配修补器结合起来,你就有了一个成功的公式.我没有使用Bundle元素,而是使用产品元素,但仍然适用于我.