TeamCity-AssemblyInfoPatcher不工作,已记录错误

TeamCity-AssemblyInfoPatcher不工作,已记录错误,teamcity,teamcity-9.0,Teamcity,Teamcity 9.0,AssemblyInfoPatcher生成功能不工作。有些文件已修补,有些则未修补 Assembly file version was specified, but couldn't be patched in file D:\TeamCity\Agent\buildAgent\work\6afd998e316c631f\La\Di\Da\Properties\AssemblyInfo.cs. Is necessary attribute missing? 我认为这是因为它是1.0.*,因为其

AssemblyInfoPatcher生成功能不工作。有些文件已修补,有些则未修补

Assembly file version was specified, but couldn't be patched in file D:\TeamCity\Agent\buildAgent\work\6afd998e316c631f\La\Di\Da\Properties\AssemblyInfo.cs. Is necessary attribute missing?
我认为这是因为它是
1.0.*
,因为其中一个失败的文件具有此格式,而其中一个成功的文件具有默认的
1.0.0
格式,所以我在整个解决方案中将属性更改为
1.0.0
,现在它们都不起作用

我得到上述错误或:

Assembly version attributes were not found in ...
该属性已定义,团队中至少有两名其他人员已确认,他们也可以使用自己的生产眼睛看到它


我很乐意掏钱砸我的工作键盘。

嗯,我设法让它工作了,但没有

我有一个名为
AssemblyVersionStringWithCounter
的配置参数,是从PowerShell脚本设置的。我在补丁功能中使用了这个

我将其更改为由其他参数组成,如

%MajorVersionNumber%。%MinorVersionNumber%。%BuildWeek%。%build.counter%

现在它修改了文件,但是没有设置参数,版本不正确。似乎AssemblyInfoPatcher无法使用在生成步骤中设置的值


似乎我已经浪费了我客户800英镑的钱,而我从一开始就应该给它加油。代码为王。

我怀疑这可能行不通。我将在另一个问题中解释。AssemblyInfoPatcher相对于脚本化解决方案的一个优势(除了方便性)是它确保在生成结束时回滚更改。这样,您签出的文件与VCS中的内容匹配。谢谢。关于最后一点,我注意到补丁程序会还原所有内容,我正在考虑确保在每次构建之前清除工作/签出文件夹,尽管这会依赖于文档/人类知识。也许我可以重新命名原始文件并将其全部放回原处。否则我就必须在Git上编写一个依赖项脚本。如果文件被留下,那就没关系了(直到它咬到我为止)。@Lukeppulett:因为AssemblyInfo修补程序是一个构建功能,而不是一个构建步骤,所以它会在执行任何构建步骤之前修改源文件。也就是说,它将始终使用配置参数或环境变量的默认值(在构建开始时有效的值),无论您在后续构建步骤中如何修改这些值。