Ich verwende Visual Studio 2010, um ein C# -Projekt zu erstellen, das über x86- und x64-Ziele verfügt. Wenn ich mit der IDE baue, bekomme ich das korrekte Ergebnis von x64- und x86-Zielen.Erstellen von x64-C# -Projekt mit Msbuild-Ergebnissen in 32-Bit-Zielen
Wenn ich Msbuild in der Befehlszeile verwende, bekomme ich alles in x86 erstellt, obwohl ich x64 in der Befehlszeile angeben.
Ich hatte dieses Problem nicht, bis ich von .Net 4.0 auf .Net 4.5 aktualisiert.
Mit .Net 4.0 konnte ich meine x64-Ziele erhalten, auch wenn ich x86 in der Befehlszeile angegeben.
Ich habe einen Build in der .Net 4.0-Umgebung und dann einen anderen Build in der .Net 4.5-Umgebung und piped die Ausgabe in Protokolldateien. Ich habe bemerkt, einige Unterschiede in den Log-Dateien, aber ich denke, das ist, was mein Problem verursacht:
In .Net 4.0 ich diese Zeile in der Protokolldatei:
/Referenz: C: \ Windows \ Microsoft. Net \ assembly \ GAC_MSIL \ Microsoft.CSharp \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ Microsoft.CSharp.dll
in .Net 4.5 ich diese Zeile in der Protokolldatei: /r: "C: \ Program Files (x86) \ Referenz-Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Microsoft.CSharp.dll "
Irgendwelche Ideen? Es scheint .Net 4.5 verwendet einen x86-spezifischen Pfad.
Welche Befehlszeile verwenden Sie zum Ausführen von Msbuild? Erstellst du eine sln oder csproj Datei? Wie übergibt man eine bestimmte Konfiguration? – Lanorkin
msbuild project.sln/p: Platform = "x64"/t: Reinigen; Rebuild/p: Konfiguration = Debug – Tony
Ist die Konfiguration in dieser Zeile am Anfang des Logbuchs 'Building solution configuration" Debug | x64 "'? Wie verstehen Sie, dass die Ergebnisse falsch sind? Welche Ausgabe-Verzeichnisse werden erstellt - 'bin \ x86 \ Debug' oder' bin \ x64 \ Debug'? – Lanorkin