MSBuildWorkspace.Create() throws exception

妖精的绣舞 提交于 2019-11-27 16:06:01

问题


I have Visual Studio 2013. I also have installed MSBuild Tools 2013. The following code gives me exception

var workspace=MSBuildWorkspace.Create();

Here is the exception

Could not load file or assembly 'Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

What am I doing wrong ?


回答1:


You need to install the BuildTools for Visual Studio 2015.




回答2:


You could compile Roslyn against an older version of MSBuild to avoid this problem. I've done this with VS 2012:

Src/Workspaces/Core/Workspaces.csproj
-    <Reference Include="Microsoft.Build, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="Microsoft.Build.Framework, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="Microsoft.Build" />
+    <Reference Include="Microsoft.Build.Framework" />

Src/Workspaces/CSharp/CSharpWorkspace.csproj
-    <Reference Include="Microsoft.Build, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="Microsoft.Build.Framework, Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="Microsoft.Build.Tasks.$(MSBuildAssemblyNameFragment), Version=$(VisualStudioReferenceAssemblyVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    <Reference Include="Microsoft.Build" />
+    <Reference Include="Microsoft.Build.Framework" />
+    <Reference Include="Microsoft.Build.Tasks.v4.0" />

Basically I strip the strong name (note that the name of the Tasks assembly is different though) so it picks up the MSBuild from the GAC which comes with the .NET Framework, which for me is the version VS 2012 used.



来源:https://stackoverflow.com/questions/25504951/msbuildworkspace-create-throws-exception

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!