我的解决方案中有很多nuget包已经过时了,所以我逐一检查了它们,并将它们更新到最新版本或最接近的版本。
在构建和测试解决方案后,我尝试将其签入。生成服务器返回错误。
我取消了我所做的所有更改,并从源代码管理中获得了最新版本,这是在构建服务器上成功构建的最后一个版本。
我向文件中添加了一个空格字符,并尝试了测试签入。这次失败的原因完全相同!
我甚至尝试在旧版本的VisualStudio中打开该项目,但它也不会从中检入。
考虑到这可能是构建服务器上的问题,我在另一个项目中尝试了相同的测试。此签入没有问题。
下面是构建服务器进程中出现故障的行的示例。。。
C: \Windows\ServiceProfiles\NetworkService\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5\build\microsoft。延期。Api描述。服务器目标(5,38):错误MSB4186:无效的静态方法调用语法:“[MSBuild]::VersionLessThanOrEquals('$(TargetFrameworkVersion)','2.0')”。找不到方法“[MSBuild]::VersionLessThanOrEquals”。静态方法调用的形式应为:$([FullTypeName]::method()),例如$([System.IO.Path]::Combine(`a`,`b`))。检查所有参数是否已定义、类型是否正确以及指定的顺序是否正确。[C:\vstsagent\vsts-agent-win-x86-2.142.1\_work\11\s\project\project.csproj]
我在堆栈溢出上看到过一些类似的问题,但没有一个是完全相同的,另外我也不太明白这个错误想要告诉我什么。
我不明白为什么签入失败,因为最新版本和我尝试签入的版本之间的唯一区别是空格字符。
我该如何解决这个问题?
编辑添加:我发现一个问题似乎与我的问题相符,但就像上一张海报一样,我不知道该在哪里做。。。https://learn.microsoft.com/en-us/answers/questions/1353483/invalid-static-method-invocation-syntax-(msbuild)考虑到nuget之前没有升级过,至少在服务器上没有升级,降级nuget似乎是一个奇怪的选项。
新编辑:
我认为这可能与包裹有关,因为这个条目。。。
错误MSB4186:无效的静态方法调用语法:“[MSBuild]::VersionLessTanOrEquals('$(TargetFrameworkVersion)','2.0')“。找不到方法“[MSBuild]::VersionLessThanOrEquals”。静态方法调用的形式应为:$([FullTypeName]::Method()),例如$([System.IO.Path]::Combine(`a`,`b`))。检查所有参数是否已定义,类型是否正确,以及以正确的顺序指定。[C:\vstsagent\vsts-agent-win-x86-2.142.1\_work\11\s\API\API.csproj]
我真的不知道如何进行调试。