在 mono / Ubuntu 上构建 SLN

6
我正在尝试使用Mono / xbuild在Ubuntu上构建我的SLN文件。起初,我遇到了与webapplication.targets缺失相关的错误,并尝试通过添加符号链接来解决此问题,类似于Webapplication.targets missing when building a MVC4 project in MonoDevelop on OS X 10.7.4中的方法。

但是现在,我遇到了与以下内容相关的错误:

: error : Error initializing task Error: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies.

我需要采取特殊步骤才能使其正常工作吗?我需要使用特定版本的Mono吗?

[更新]

看起来这是一个与Nuget步骤相关的问题:

azureuser@scratchpad:~/test-api/src/Model$ xbuild Model.csproj
XBuild Engine Version 12.0
Mono, Version 3.2.8.0
Copyright (C) 2005-2013 Various Mono authors

Build started 8/4/2014 11:29:09 AM.
__________________________________________________
Project "/home/azureuser/test-api/src/Model/Model.csproj" (default target(s)):
        Target EnsureNuGetPackageBuildImports:
: error : Error initializing task Error: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the file specif
ied.
        Task "Error" execution -- FAILED
        Done building target "EnsureNuGetPackageBuildImports" in project "/home/azureuser/test-api/src/Model/Model.csproj".-- FAILED
        Target _RecordCleanFile:
: error : Error initializing task ReadLinesFromFile: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the
 file specified.
        Task "ReadLinesFromFile" execution -- FAILED
        Done building target "_RecordCleanFile" in project "/home/azureuser/test-api/src/Model/Model.csproj".-- FAILED
Done building project "/home/azureuser/test-api/src/Model/Model.csproj".-- FAILED

Build FAILED.
Errors:

/home/azureuser/test-api/src/Model/Model.csproj (default targets) ->
(EnsureNuGetPackageBuildImports target) ->

        : error : Error initializing task Error: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the fil
e specified.

/home/azureuser/test-api/src/Model/Model.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (_RecordCleanFile target) ->

        : error : Error initializing task ReadLinesFromFile: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot
find the file specified.

         0 Warning(s)
         2 Error(s)

Time Elapsed 00:00:00.3989900

Mono JIT编译器版本3.2.8(Debian 3.2.8+dfsg-4ubuntu1) - user156888
azureuser@scratchpad:~/test-api/src/Model$ lsb_release -a 没有可用的LSB模块。 发行版ID:Ubuntu 描述:Ubuntu 14.04.1 LTS 版本:14.04 代号:trusty - user156888
有趣!我认为你可能遇到了一个已经修复的Mono bug,你可以测试一下Mono 3.4.x甚至是3.6.x吗?谢谢。 - knocte
如何将其更新到最新版本? - user156888
我已经按照这个链接(http://mono-project.com/Compiling_Mono_From_Git)从源代码构建了Mono - 现在该如何安装它呢?我运行了make install,但是mono -V仍然显示旧的版本号。 - user156888
显示剩余3条评论
1个回答

12

我遇到了同样的问题,是在Debian Jessie操作系统上。 knocte 提供的“提示”是正确的。 mono 3.2.8版本不够用。 我按照mono官网的指南安装了最新版本, 现在问题已经解决了。

所以我做了以下工作:

#add the Mono Project GPG signing key as trusted
apt-key adv --keyserver pgp.mit.edu --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

#add their pacages repository to apt sources
echo "deb http://download.mono-project.com/repo/debian wheezy main" > /etc/apt/sources.list.d/mono-xamarin.list

#refresh package list
apt-get update

#install newer mono & friends
apt-get install mono-devel

然后,我的之前失败的xbuild工作了。

mono --version
    3.10.0 
xbuild /version 
   XBuild Engine Version 12.0

我不得不修改最后一个命令为 apt-get install -t wheezy mono-devel,这可能是因为Debian(合理地)认为 jessie > wheezy - Scott Weldon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接