Teamcity,MSBUILD ExtensionPack.Framework.AssemblyInfo任务失败

时间:2016-08-24 08:18:46

标签: c# .net msbuild 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目标的proj定义如下,其中@VersionDefinition是&#34; inlcude&#34;对于所有AssemblyInfo.cs文件:

<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,但我不确定&#34;标准位置&#34;在其描述中指的是。

另一方面,最近有没有对Windows或.NET进行任何更新可能会破坏一切......到处都是?我最近有很多第三方库几乎同时开始失败。

由于

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

1 个答案:

答案 0 :(得分:0)

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

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

这里有趣的部分是,多年来没有触及可疑项目,因此价值从未设定过。通过我们的git日志快速扫描证实了这一点。最终我不确定是什么导致这个问题成为一个问题,但现在不再存在。