我有一个包含一百多个项目的 .NET 应用程序/解决方案。作为活动的一部分,我将这些项目的
TargetFramework
从 4.6.1
更改为 4.6.2
(别问...)。
现在我的应用程序可以在
debug
和 release
模式下在本地构建并正常工作。
但是一旦我推送代码并在 Jenkins 中构建分支,它就开始失败。
我收到几个警告,例如:
警告 MSB3277:发现不同版本的“System.X.SomeAssembly”之间存在无法解决的冲突。当日志详细程度设置为详细时,这些引用冲突会在构建日志中列出。
我不太熟悉 Jenkins,MSDN 文章也没什么帮助。
有人知道或以前遇到过类似的问题吗?任何帮助都将是巨大的。
此外,我的 Jenkins 构建环境是由我无法共享的
JenkinsFile
驱动的。
看起来像缓存依赖项问题,您是否使用某种第三方包存储库,例如“nuget”或 nexus 存储库。在这种情况下,您可能需要在实际构建项目之前从工作区中清除这些内容。
您可能想要检查/添加的另一件事是在构建之前和之后清理工作区。如果您通过 jenkins 管道执行此操作,并结合使用永久代理,则缓存的依赖项可能是您的问题。
例如,如果您使用 nuget 作为包管理器,则在构建项目之前,您可能需要在管道 dsl 中尝试类似的操作:
bat 'dotnet nuget locals all --clear'