Frage

Ich habe eine Lösung, die mehrere Projekte enthält. Eines der Testprojekte ist .NET 4.0 aufgrund einer Abhängigkeit verwendet wird. Das deploy-able Projekt, das ich bauen will gegen die .NET 3.5-Compiler gezielt. Unser aktueller Build-Skript ist nicht granular genug, um verschiedene .NET-Compiler auf Projektbasis zu zielen. Grundsätzlich kann ich nur für jedes Projekt einen Compiler in der Lösung verwendet werden.

Ist der .NET 4.0-Compiler intelligent genug, um 3.5-Code zu kompilieren?

Lösungsstruktur

  • Projekt 1 .NET 3.5 (deploy-fähig)
  • Projekt 2 .NET 4.0 (für die in automatisierten Build-Zyklus zu testen)

Hinweis: Ich kann nicht einfach ignorieren Projekt 2, weil unser automatisierter Build-Server die Unit-Tests in Projekt 2. Alle Tests ausgeführt wird, muss vergehen, bevor ein Build erfolgreich ist.

Edit:

Ich bin nicht diesen Code in Visual Studio zu kompilieren. Wir haben einen benutzerdefinierten Build-Skript, das zu Visual Studio externe ausgeführt wird. Es ist nur klug genug 1 .NET-Compiler zu verwenden. Es verwendet diese Compiler alle Projekte in einer bestimmten Lösung zu erarbeiten. Das Build-Skript kümmert sich nicht darum, ob die Projekte erstellt werden, definiert gegen 3,5 oder 4,0. Stattdessen es kompiliert sie mit dem definierten Compiler.

Projekt 1 nicht Projekt 2. Projekt Referenz 2 ist ein Projekt, Unit-Tests enthält. Unser automatisiertes Build-Tool compiles Projekt 2 nur Tests auszuführen.

War es hilfreich?

Lösung

Bearbeiten

Op geklärt ist die Frage, die Kommentare als

  

Kann die 4.0-Compiler ein 3.5 Projekt

Die Antwort ist ja dies sehr gut möglich ist.

Andere Tipps

Rechtsklick auf „Projekt 1“ Projekt in der Lösung Explorer. Weiter auf Eigenschaften (Hot-Key ist ALT + Enter). Unter der Registerkarte Anwendung gibt es eine „Target Framework“ Drop-down. Stellen Sie, dass auf 3,5.

Wenn Sie nun kompilieren (es klingt wie Sie eine Befehlszeile verwenden) verwenden MSBuild und geben Sie kein Ziel Framework-Version. kompilieren Sie einfach die Lösung Datei und jedes Projekt wird kompilieren richtig.

Sie können auf Probleme stoßen auf die Arten von Bibliotheken ab, die Sie verwenden. Insbesondere Ich hatte Probleme mit Namespaces / Klassennamen, die nicht in in 3.5 nicht existieren, die in 4.0 umgesetzt wurden.

Wenn Sie etwas zu tun, sind esoterisch wie Kompilieren NHibernate Quellcode als Teil Ihrer Lösung Sie Probleme laufen wird. Andernfalls, wenn Sie sich nicht auf Namensräume verstärken sollten Sie kein Problem haben, ein 3.5-Projekt 4.0 kompilieren.

Was ist los mit Bob Antwort zu nehmen? Sind Sie eine benutzerdefinierte Build-Lösung (das heißt nicht Visual Studio)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top