MSBUILD ExtensionPack.Framework.AssemblyInfo任务失败
本文关键字:任务 失败 AssemblyInfo Framework ExtensionPack MSBUILD | 更新日期: 2023-09-27 18:03:40
似乎所有的东西都在一夜之间同时崩溃了…叹息。
在绝望的尝试,以解决其他随机问题,我需要建立我们的大型项目,却发现我们的团队城市建设代理不能再做他们的工作。错误信息如下:
[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文件的"include":
<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 patch,但我不确定"标准位置"在其描述中指的是什么。
顺便问一句,最近windows或。net是否有任何可能破坏一切的更新?最近,我发现许多第三方库几乎同时出现故障。
感谢最近成功构建的日志甚至没有显示正在调用的版本目标…这是奇怪的,因为这是唯一设置正确的构建号的地方,并且构建创建的文件应用了正确的编号。
所以我在构建客户端上安装了一个较新版本的ExtensionPack(4.0.13.0),并得到了一个稍微清晰的错误消息,告诉我哪个文件有问题。
检查AssemblyInfo.cs文件提到缺少AssemblyVersion和AssemblyFileVersion值。添加这些就解决了问题。
有趣的是,这个可疑的项目已经很多年没有被碰过了,所以这些值从来没有被设置过。快速浏览一下我们的git日志就证实了这一点。最后,我不确定是什么引发了这个问题,但它不再是。