Wix TeamCity';s AssemblyInfo修补程序';s数字格式

Wix TeamCity';s AssemblyInfo修补程序';s数字格式,wix,teamcity,wix3.5,msbuildcommunitytasks,Wix,Teamcity,Wix3.5,Msbuildcommunitytasks,我曾经让TeamCity+WiX+MSBuild社区任务工作。现在我已经升级到WiX 3.5,我不记得我是如何配置它的了。:)当我浏览TeamCity时,我遇到了“AssemblyInfo补丁程序”。我想,“太好了!这会让我的生活更轻松!”。我使用%build.vcs.number.1%作为格式并构建了我的安装程序 虽然补丁程序确实输入了vcs号码,但它将其用作版本中的主要号码。因此,它不是将1.0.0.xxxx,而是将版本xxxx.0.0 我浏览了JetBrain的文档站点,没有找到任何与将其

我曾经让TeamCity+WiX+MSBuild社区任务工作。现在我已经升级到WiX 3.5,我不记得我是如何配置它的了。:)当我浏览TeamCity时,我遇到了“AssemblyInfo补丁程序”。我想,“太好了!这会让我的生活更轻松!”。我使用
%build.vcs.number.1%
作为格式并构建了我的安装程序

虽然补丁程序确实输入了vcs号码,但它将其用作版本中的主要号码。因此,它不是将
1.0.0.xxxx
,而是将版本
xxxx.0.0

我浏览了JetBrain的文档站点,没有找到任何与将其更改为更合适的设置相关的内容。我还寻找了regex支持,但没有找到任何东西


有人能推荐一个好的解决方案吗,还是我应该继续尝试配置我的原始工具集?

尝试将完整的预期版本号作为格式的一部分:

1.0.0.%build.vcs.number.1%

Hmmm尚未看到AssemblyInfo修补程序,但您可以使用MsBuild和Regex手动执行此操作:


程序集信息修补程序一次只修补完整的版本字符串。但是系统变量build.number可以从构建配置的“常规”页面生成,如下所示:


当您将%build.number%指定为AssemblyInfo版本时,它将从“常规设置”页面中获取组合编号。

我考虑过这一点,但当我将AssemblyInfo.cs更改为2.0.0.0时,该解决方案将很快失效,并希望TeamCity将版本号设置为2.0.0.yyyy。是否有原因不使用TeamCity构建配置的“构建编号格式”设置来说明这一点?您可能希望能够看到程序集中显示的相同版本。我的建议是将“内部版本号格式”设置为“1.0.0.%Build.vcs.number.1%”(当版本号更改时,您将更改此格式)。程序集版本格式将基于内部版本号(%system.build.number%)。这是因为内部版本号应该与正在开发的源代码相关联。如果我们需要修改一个次要的版本号,那么我们应该在项目中这样做,而不是要求某人登录TeamCity服务器并在那里更改版本。您可以在源代码管理中的文件中维护版本号-读取此版本号,并使用TeamCity的服务消息扩展点进行回显:嗨!我不清楚如何利用这个技巧来创建一个包含主版本的文件,读取它,并使用“TC服务消息扩展性”对其进行响应,该扩展性具有正确的格式,会导致TC的值发生变化。这个职位有帮助;在版本控制中使用vcs编号时要小心。即使有些东西声称忽略了第四个字段,但如果数字太高,其他东西也会中断(如msp修补)。我在32768附近看到过问题发生。@Dave谢谢你的评论,我必须记住这一点。谢谢,但我的问题是专门想确定是否可以只使用AssemblyInfo修补程序来完成我想要的工作。谢谢,我会尝试一下。我已经有了一个使用WiX的解决方案,但如果这是可行的,我一定会把它作为答案!我试过这个。我的考试有一半因为它而失败了。