【问题标题】:Teamcity, MSBUILD ExtensionPack.Framework.AssemblyInfo task failsTeamcity,MSBUILD ExtensionPack.Framework.AssemblyInfo 任务失败
【发布时间】:2016-08-24 08:18:46
【问题描述】:

似乎一切都在一夜之间同时破裂......叹息。

为了解决其他随机问题,我拼命尝试构建我们的大型项目,结果却发现我们的 teamcity 构建代理无法再完成他们的工作。错误信息如下:

[CallTarget] Version (1s)
[Version] MSBuild.ExtensionPack.Framework.AssemblyInfo (1s)

[MSBuild.ExtensionPack.Framework.AssemblyInfo] I:\BuildAgent-DEVTC1\work\e7d35660eba50bd6\build.proj(150, 3): error MSB4018: The "MSBuild.ExtensionPack.Framework.AssemblyInfo" task failed unexpectedly.
System.ArgumentNullException: Value cannot be null.
Parameter name: input
   at System.Text.RegularExpressions.Regex.Matches(String input)
   at MSBuild.ExtensionPack.Framework.Version.ParseVersion(String version) in     D:\Projects\MSBuildExtensionPack\Releases\4.0.3.0\Main\Framework\Framework\AssemblyInfo\Version.cs:line 51
   at MSBuild.ExtensionPack.Framework.AssemblyInfo.Execute() in D:\Projects\MSBuildExtensionPack\Releases\4.0.3.0\Main\Framework\Framework\AssemblyInfo\AssemblyInfo.cs:line 1011
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

Version 目标的项目定义如下,其中@VersionDefinition 是所有 AssemblyInfo.cs 文件的“inlcude”:

<Target Name="Version">
    <MSBuild.ExtensionPack.Framework.AssemblyInfo
            AssemblyInfoFiles="@(VersionDefinition)"
            AssemblyVersion="$(BUILD_NUMBER)"
            AssemblyCopyright="Copywrite info here"
            AssemblyCompany="Company info here"
            AssemblyFileVersion="$(BUILD_NUMBER)"/>
</Target>

我可以看到 teamcity 也正确地传递了 BUILD_NUMBER 和一个有效值。

有什么想法吗?

我愿意接受不依赖扩展包来设置 AssemblyInfo.cs 编号的建议。我查看了 TeamCity Assembly Info Patcher,但不确定其描述中所指的“标准位置”。

顺便说一句,Windows 或 .NET 最近是否有任何更新可能破坏一切……无处不在?我最近有许多第三方库几乎同时开始失败。

谢谢

更新 最近成功构建的日志甚至没有显示正在调用的版本目标...这很奇怪,因为这是设置正确构建号的唯一位置,并且构建创建的文件应用了正确的编号。

【问题讨论】:

  • 为什么投反对票?

标签: c# .net msbuild teamcity


【解决方案1】:

因此,我在构建客户端上安装了更新版本的 ExtensionPack (4.0.13.0),并收到了一条更清晰的错误消息,告诉我哪个文件有问题。

检查 AssemblyInfo.cs 文件时提到缺少 AssemblyVersion 和 AssemblyFileVersion 值。添加这些解决了这个问题。

这里有趣的部分是,可疑项目已多年未触及,因此从未设置过值。快速浏览我们的 git 日志可以确认这一点。最终我不确定是什么触发了这成为一个问题,但它不再是。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多