2016-10-27 7 views
0

Ich muss ein altes WPF-Projekt in VB über Code kompilieren. Dazu schreibe ich eine Klassenbibliothek in C#, die die Lösung lädt und einen Build-Prozess aufruft."Die angegebene Lösungskonfiguration" Debug | AnyCPU "ist nicht gültig" Fehler beim Erstellen der Lösung über Microsoft.Build

-Code wie folgt:

// solution_file is a FileInfo object that points to the .sln file 
// logger is a class that implements ILogger 
var solution = new ProjectCollection(); 
var solution_properties = new Dictionary<string, string>(); 
solution_properties.Add("Configuration", "Debug"); 
solution_properties.Add("Platform", "AnyCPU"); 
var build_parameters = new BuildParameters(solution); 
var logger = new SimpleLogger(); 
build_parameters.Loggers = new List<ILogger>() { logger }; 
var build_request = new BuildRequestData(
    solution_file.FullName, 
    solution_properties, 
    "14.0", 
    new string[] { "Build" }, 
    null); 
var build_result = BuildManager.DefaultBuildManager.Build(build_parameters, build_request); 
if (build_result.OverallResult != BuildResultCode.Success) 
    throw new Exception(); 

Problem ist in jedem Fall die Build falis mit dem folgenden Fehler:

The specified solution configuration "Debug|AnyCPU" is not valid. Specify a valid solution configuration with the properties Configuration and Platform (eg. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave these properties empty to use the default solution configuration.

(Nachricht möglicherweise nicht eine genaue Übersetzung, ich bin übersetzen aus dem Spanischen.)

Jede Kombination von Konfiguration (Debug oder Release) und Plattform (x86, x64 oder AnyCPU) schlägt mit dem gleichen Fehler (Die einzige Sache, die sich ändert, ist der The specified solution configuration Debug|AnyCPU is not valid Teil. Wenn ich diese Eigenschaften leer lasse, ist die Fehlermeldung dieselbe mit Debug|MCD anstelle von Debug|AnyCPU.

Alle Hinweise in die richtige Richtung würden sehr geschätzt werden.

+1

Wenn Sie die Fehlermeldung betrachten, ist es sehr klar, Sie haben "AnyCPU" verwendet, wenn es "Any CPU" sein muss – Gusman

+0

Was passiert, wenn Sie 'MSBuild.exe Solution.sln' von der Kommandozeile aufrufen? –

+0

Stellt sich heraus, dass ich eine richtige Fehlermeldung nicht lesen kann. Gusman, bitte poste dies als Antwort, damit ich es markieren/upvoten kann. Danke an alle, die sich die Zeit genommen haben zu helfen. –

Antwort

0

PROTIP: Beim nächsten Mal, Kinder, lesen Sie die Fehlermeldungen richtig. Ich ging als Plattform "Any CPU" anstelle von "AnyCPU" (beachten Sie den nicht vorhandenen Platz im richtigen Begriff).

Verwandte Themen