Jeśli wszystko inne zawiedzie, spróbuj. Właśnie przetestowane następujące w VS2010b2, opracowywane kierowania 2,0:
using System;
class Program {
static void Main() {
Write();
Write(msg: "world");
Console.ReadLine();
}
static void Write(string msg = "Hello") {
Console.WriteLine(msg);
}
}
ta wykorzystuje dwa nowe C# 4.0 językowych funkcji, które korzystają z meta-danych, które są również obecne w .NET 2.x/3 .x/CLR 2; działa poprawnie na mojej zwykłej maszynie (CLR 2) (mój VS2010b2 to VM). Kończę więc "tak, dla niektórych funkcji". Oczywiście, jeśli użyjesz funkcji zależnej od struktury (dynamic
itd.), To nie skończy się tak dobrze.
Edytuj: ponów swój komentarz; Próbowałem csc
w wierszu polecenia, a domyślnie ten ma docelowy CLR 4; Spróbuję sprawdzić, czy uda mi się osiągnąć cel CLR 2 (tak jak VS oczywiście może). Niestety, to już nie obejmuje (sfałszowane, btw) wiersz poleceń w oknie wyjściowym build ...
Aktualizacja: niektóre „w wiem” ludzie wrócili z:
Przełęcz/nostdlib oraz odniesienie do pliku 2.0 mscorlib.dll.
I rzeczywiście:
C:\Windows\Microsoft.NET\Framework\v4.0.21006>csc /nostdlib /reference:%SystemRo
ot%\microsoft.net\framework\v2.0.50727\mscorlib.dll /out:c:\my.exe /target:exe "
C:\Users\Marc\Documents\Visual Studio 2010\Projects\ConsoleApplication6\ConsoleA
pplication6\program.cs"
Microsoft (R) Visual C# 2010 Compiler version 4.0.21006.1
Copyright (C) Microsoft Corporation. All rights reserved.
działa dobrze (exe działa na moim non-4.0 maszyny). Kredyt: Kevin Pilch-Bisson
co to jest porównywalność binarna? –
Bob chciał powiedzieć "kompatybilność" –
haha poprawić Ed, wiesz, że nie możesz przeliterować, gdy nie możesz polegać na sprawdzaniu pisowni. Dzięki! – Bob