运行一个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/上报告了它?
这是我如何解决它:(注意我的单声道是在/选择/单声道)
$ 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与此运行时不同步”错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)