MSBuildWorkspace.Create() lance l'exception

J'ai Visual Studio 2013. J'ai aussi installé MSBuild Tools 2013. Le code suivant me donne exception

var workspace=MSBuildWorkspace.Create();

Voici l'exception

ne pouvait pas charger le fichier ou l'assemblage 'Microsoft.Build, Version = 14.0.0.0, Culture=neutre, Publiceytoken = b03f5f7f11d50a3a' ou l'un de ses dépendance. Le système ne peut pas trouver le fichier spécifié.

Qu'est-ce que je fais de mal ?

16
demandé sur fahadash 2014-08-26 15:39:01

2 réponses

Vous devez installer le BuildTools for Visual Studio 2015.

19
répondu Jason Malinowski 2015-08-20 16:38:45

Vous pouvez compiler Roslyn contre une ancienne version de MSBuild pour éviter ce problème. Je l'ai fait avec 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" />

fondamentalement, je raye le nom fort (notez que le nom de L'assemblée des tâches est différent) donc il reprend le MSBuild du GAC qui vient avec le Framework .NET, qui pour moi est la version VS 2012 utilisé.

3
répondu Zarat 2014-10-06 06:20:29