2012-03-26 11 views
3

Ich benutze .NET4.0, aber aus Kompatibilitätsgründen möchte ich auf eine .NET2 DLL von C# kompilieren. Es sollte keine .NET4.0-spezifische Funktionalität im Skript geben, daher sollte es in einer .NET2-Umgebung funktionieren. Gibt es eine Befehlszeilensyntax auf der CSS, mit der ich eine Versionsnummer angeben kann?Kompiliere eine .NET2.0 DLL von .NET4.0

+3

Ich glaube, dass als Build-Ziel in den Projekteigenschaften festlegen können. –

+0

http://msdn.microsoft.com/en-us/library/bb398202.aspx –

+0

Wollen Sie sagen, dass Sie eine .Net 2.0-DLL auf einer Maschine installieren möchten, die NUR .NET 4.0 installiert hat? Oder wäre .Net 2/3/3.5 auch installiert? – Brook

Antwort

6

Sie erwähnten csc.exe, also nehme ich an, dass Sie nicht mit Visual Studio, sondern über die Befehlszeile erstellen werden. Außerdem gehe ich davon aus, dass msbuild nicht auf der Build-Maschine verfügbar ist.

Ich glaube, dass csc.exe für jede Version spezifisch ist. Im Ordner C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 finden Sie beispielsweise csc.exe, und im Ordner C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 finden Sie eine andere Version von csc.exe.

Um eine .NET 2.0-DLL zu erstellen, sollten Sie auf die csc.exe aus dem v2.0-Ordner (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727) verweisen.

Prost!

+0

Großartig. Vielen Dank. Ich wusste nicht, dass mehrere Frameworks auf dem System installiert waren. – steventnorris

2

In Visual Studio Sie die Ziel Framework-Version auf .NET 2.0 in den Eigenschaften des Projekts konnte:

enter image description here

0

Legen Sie in den Projekteigenschaften das Zielframework auf 2.0 fest. Wenn Sie Funktionen wie LINQ verwenden, die im 2.0-Framework nicht vorhanden sind, funktioniert diese Methode nicht. Wenn Sie vollständige Kompatibilität mit 2.0 Framework benötigen, sollten Sie Ihren Code für das 2.0 schreiben und dann das Targeting für das 4.0 später kompilieren, wenn Sie es benötigen.

2

Wenn Sie manuell über die Befehlszeile kompilieren, können Sie nicht einfach das v2-Framework csc ausführen?

zB (Pfade von meiner Maschine)

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe 

oder für v4

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe