У меня есть код С#, который использует некоторые конструкции, специфичные для .NET 3.5. Когда вы устанавливаете дистрибутив .NET Framework, вы получаете с ним компилятор С# (csc.exe). Даже если я укажу csc.exe в C:\Windows\Microsoft.NET\Framework\v3.5, я не могу скомпилировать код на компьютере с только установленной платформой .NET Framework, но не Visual Студия. Я могу скомпилировать код, который без проблем использует конструкторы v2.0. Как я могу это сделать?
Вот пример, демонстрирующий мою проблему:
using System;
class Program
{
public static void Main()
{
// The MacOSX value to the PlatformID enum was added after
// .NET v2.0
if (Environment.OSVersion.Platform == PlatformID.MacOSX)
{
Console.WriteLine("Found mac");
}
Console.WriteLine("Simple program");
}
}
При компиляции этого кода с помощью csc.exe я получаю следующую ошибку:
test.cs(9, 58): ошибка CS0117: "System.PlatformID" не содержит определения для "MacOSX"
При выполнении csc.exe /?
я получаю баннер:
Microsoft (R) Visual С# 2008 компилятор версии 3.5.21022.8
для Microsoft (R).NET Framework версии 3.5
Авторское право (C) Корпорация Microsoft. Все права защищены.