MonoDevelop cannot import VS2013 / 2015 solutions

I open the .sln file that I transferred from VS2013 to MonoDevelop. However, when I try to do this, it causes the following errors:

 1. Project 'foo' has a different ToolsVersion than the containing solution. 2. Error while trying to load the project '/path/to/foo.csproj': Unknown ToolsVersion '12.0' 3. [repeat 2 for every project in the solution] 

When I tried to do this for the VS2015 file, it gave me the same errors, except this time ToolsVersion was 14.0 .

My version of MonoDevelop is v4.0.12; is there a workaround for this?

+7
c # visual-studio visual-studio-2013 mono monodevelop
source share
2 answers

I know that MonoDevelop 5.x + / Mono 4.x has support for xbuild / MSBuild Toolsversion 12. So, let's check your installation.

Check Mono Installation:

mono -version

 Mono JIT compiler version 4.0.2 ((detached/c99aa0c Thu Jun 11 18:53:01 EDT 2015) 

xbuild --version

 XBuild Engine Version 12.0 Mono, Version 4.0.2.0** 

Check your GAC installation:

gacutil -l | grep Microsoft.Build

 Microsoft.Build, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Engine, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Engine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Engine, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Framework, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Utilities.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Utilities.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 

Check if you have MSBuild dll (the paths are platform-dependent and change if necessary):

 cat `which xbuild` #!/bin/sh exec /Library/Frameworks/Mono.framework/Versions/4.0.2/bin/mono $MONO_OPTIONS /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/xbuild/12.0/bin/xbuild.exe " $@ " 

Grab your Mono installation path from the output above and change the path below to fit:

find / Library / Frameworks / Mono.framework / Versions / 4.0.2 -name "* MSBuild"

 /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/4.5/MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/policy.0.2.Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/policy.0.3.Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/policy.0.4.Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/policy.0.5.Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/gac/policy.0.6.Mono.Addins.MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/xbuild/12.0/bin/MSBuild /Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/xbuild/14.0/bin/MSBuild 

So, as you can see, I have Service version 12. Update your installation / reinstall if necessary; -)

+10
source share

Workarounds:

  • Upgrading to MonoDevelop 5, which supports projects using Tools Version 12.0
  • Edit the .csproj file and change the Tools version to 4.0

    <Project ToolsVersion = "4.0"

If you choose 2., you will need to see if the project will still be built after this change.

+1
source share

All Articles