似乎所有事情都在一夜之间打破了......叹息。
在拼命尝试修复其他随机问题时,我需要构建我们的大型项目,但却发现我们的团队成员代理无法完成其工作。错误消息如下:
[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进行任何更新可能会破坏一切......到处都是?我最近有很多第三方库几乎同时开始失败。
由于
更新 最近成功构建的日志甚至没有显示正在调用的版本目标......这是奇怪的,因为这是设置正确版本号的唯一位置,并且构建创建的文件应用了正确的编号。
答案 0 :(得分:0)
所以我在构建客户端上安装了一个更新版本的ExtensionPack(4.0.13.0),并得到了一个更清晰的错误消息,告诉我哪个文件有问题。
检查AssemblyInfo.cs文件时提到的AssemblyVersion和AssemblyFileVersion值都丢失了。添加这些解决了这个问题。
这里有趣的部分是,多年来没有触及可疑项目,因此价值从未设定过。通过我们的git日志快速扫描证实了这一点。最终我不确定是什么导致这个问题成为一个问题,但现在不再存在。