在Linux上运行的TeamCity NUnitLauncher(单声道)会导致“Corlib与此运行时不同步”错误

在Linux上运行的TeamCity NUnitLauncher(单声道)会导致“Corlib与此运行时不同步”错误,第1张

概述在Linux上运行的TeamCity NUnitLauncher(单声道)会导致“Corlib与此运行时不同步”错误

运行一个TeamCity构build代理在Ubuntu 14.04 LTC上运行NUnittesting,使用最新版本的mono,似乎有一些我不能解决的依赖性问题。 我遵循以下安装步骤

4.0.1单声道安装步骤

团队城市build设代理

当TC构build代理启动NUnit步骤时,它只是失败,查看日志显示它执行

/usr/bin/mono-sgen /home/ubuntu/buildAgent/plugins/dotnetPlugin/bin/JetBrains.BuildServer.NUnitLauncher.exe

并及时返回

Corlib not in sync with this runtime: expected corlib version 117,found 111. Loaded from: /usr/lib/mono/4.0/mscorlib.dll Download a newer corlib or a newer runtime at http://www.mono-project.com/download.

有没有任何可能的方式来得到这个工作? 我已经尝试删除所有的作品,并重新安装,甚至安装单声道版本的旧版本,但无济于事。

PerlEmbed – C# – Mono – linux

用Mono发送窗口消息

在Mono – linux上使用fileInfo和DirectoryInfo类

Debian 7上的Mono linq To sql String对象引用未设置为对象的实例

在Mono linux上使用串行端口的高波特率时出错

TC连接似乎工作,我可以手动调用和单独调用单声道 ,甚至nunit控制台但是,由TC提供的这个.exe构build似乎已经被难住的 linux非专家。

请救我从依赖地狱!

编辑 :我最终解决了我的问题,安装nunit-console并启用XML报告处理构buildfunction,而不是玩弄corelib文件和打破别的东西。

获取接入点列表并使用linux Mono / C#连接

单声道有没有关于ASP.NET的真正的限制?

在Ubuntu VPS(14.04.1 LTS)上使用mono,为什么我的httpS httpListener从不接收上下文?

asp.net 5(vnext)构buildIConfiguration缺失

NancyFX + SSL – 如何使“this.Requirehttps()”在linux上工作?

这是一个单声道错误,请参阅https://BUGzilla.xamarin.com/show_BUG.cgi?ID=34675 。

问题在于,Mono只是以引用程序集的形式提供了包括mscorlib.dll在内的4.0程序集。 它们只包含元数据,并且是为编译器设计的。 通常应用程序只是自动使用最新的版本。

Mono中的加载程序代码并未更新,以将TeamCity在其.exe.config文件中使用的v4.0.20506或v4.0.30128的显式运行时版本绑定到最新版本。 运行时代替尝试从4.0目录中加载mscorlib.dll,并且由于版本太旧(从引用程序集生成的时间开始)就会释放。

作为一种解决方法,您可以编辑<build agent installdir>/plugins/dotnetPlugin/bin/JetBrains.Buildserver.NUnitLauncher.exe.config (和其他.exe.config文件)并删除以下行:

<supportedRuntime version="v4.0.20506"/> <supportedRuntime version="v4.0.30128"/>

一旦TeamCity决定更新插件,这可能会停止工作。

替换mscorlib版本只是要求麻烦 – 即TypeLoadException和朋友正在等着你。

我所做的是用手动调用TC NunitLauncher代替Teamcity构建步骤,但强制使用Mono 4.5:

mono --runtime=4.5 /Applications/buildAgent/plugins/dotnetPlugin/bin/JetBrains.Buildserver.NUnitLauncher.exe v4.0 MSIL nunit-2.6.3 $(find **/bin/Release/*Tests.dll | paste -sd ";" -)

调用使用一些shell欺骗来找到我感兴趣使用通配符的所有程序集,但除此之外应该是直截了当的理解。

如果Mono修复了破损的4.0运行时,那将会很不错。 任何人都已经在https://BUGzilla.xamarin.com/上报告了它&#xFF1F;

这是我如何解决它:(注意我的单声道是在/选择/单声道)

$ cd /opt/mono/lib/mono $ sudo mv 4.0 __4.0 $ sudo ln -s 4.5 4.0

即摆脱4.0文件夹和符号链接4.5是4.0

这是一个黑客的东西,但它让我起来,运行,直到一个适当的修复表面!

史蒂夫

编译4.0.2之后,我在RaspBerry Pi上遇到了这个问题,但是它是从/4.5/加载的

这让我走了:

sudo mv /usr/lib/mono/4.5/mscorlib.dll /usr/lib/mono/4.5/_old_mscorlib.dll sudo cp /opt/mono-4.0.2/lib/mono/4.5/mscorlib.dll /usr/lib/mono/4.5

总结

以上是内存溢出为你收集整理的在Linux上运行的TeamCity NUnitLauncher(单声道)会导致“Corlib与此运行时不同步”错误全部内容,希望文章能够帮你解决在Linux上运行的TeamCity NUnitLauncher(单声道)会导致“Corlib与此运行时不同步”错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1286110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存