【问题标题】:TeamCity - AssemblyInfoPatcher not working, error is loggedTeamCity - AssemblyInfoPatcher 不工作,记录错误
【发布时间】:2015-11-26 20:33:18
【问题描述】:

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.0 格式,所以我在整个解决方案中将属性更改为1.0.0.0现在它们都不起作用了。

我收到上述错误或:

Assembly version attributes were not found in ...

该属性已定义,并且团队中至少有两个其他人已确认他们也可以使用他们的生产眼睛看到它。

很高兴拿出现金,这样我就可以砸我的工作键盘了。

【问题讨论】:

    标签: teamcity teamcity-9.0


    【解决方案1】:

    好吧,我设法让它工作了,但没有。

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

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

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

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

    似乎我已经浪费了大约 800 英镑的客户资金,而我应该从一开始就对其进行 PowerShell 处理。代码为王。

    【讨论】:

    • 我怀疑the solution you previously came up with 可能不起作用。我会在另一个问题中解释。
    • AssemblyInfoPatcher 相对于脚本解决方案的一个优势(除了方便)是它确保在构建结束时回滚更改。这样,您签出的文件就会与您的 VCS 中的文件相匹配。
    • 谢谢。关于您的最后一点,我注意到修补程序会还原所有内容,并且我正在考虑确保在每次构建之前清除工作/结帐文件夹,尽管这依赖于文档/人类知识。也许我可以重命名原始文件并将其全部放回原处。否则,我必须编写对 Git 的依赖的脚本。如果留下文件,那应该没关系(直到它咬我)。
    • @LukePuplett:由于 AssemblyInfo Patcher构建功能,而不是 构建步骤,它会修改源文件 在任何构建步骤执行之前。也就是说,无论您在后续构建步骤中如何修改它们,它都将始终使用您的配置参数或环境变量的默认值(在构建开始时生效的那些)。
    猜你喜欢
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多