我有一些C#代码使用一些特定于.NET 3.5的构造.安装.NET Framework发行版时,可以使用它安装C#编译器(csc.exe).即使我在C:\ Windows\Microsoft.NET\Framework\v3.5中指定了csc.exe,我也无法在只安装了.NET Framework但不安装Visual Studio 的计算机上编译代码.我能够毫无困难地编译使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
使用csc.exe编译此代码时,我收到以下错误:
test.cs(9,58):错误CS0117:'System.PlatformID'不包含'MacOSX'的定义
执行时csc.exe /?我收到横幅:
Microsoft(R)Visual C#2008编译器版本3.5.21022.8(
适用于Microsoft(R).NET Framework版本3.5)
版权所有(C)Microsoft Corporation.版权所有.
Microsoft (R) Visual C# 2008 编译器版本 3.5.21022.8
这是旧的、原始的 .NET 3.5 版本。Service Pack 1 有一个相当不幸的名字,有很多变化。我没有时间机器来检查它是否添加了 MacOSX 成员。与 Silverlight 相一致的时机恰到好处。
启用 Windows Update 或直接安装 SP1。