2008-09-28 84 views
13

如何通过命令行调用为csc.exe c#编译器指定目标框架版本(例如,没有.csproj文件并且不通过MSBUILD引擎)?针对csc.exe中的特定frawework版本

例如,使用C#3.0 csc.exe编译器,您如何编译为IL来定位2.0 .net框架?

回答

4

在C#3编译器的特定情况下,只要不使用任何不在.NET 2.0中的程序集或类型,就没有问题 - IL是相同的(而不是以1.1为例)。除此之外,您可以使用/ noconfig/nostdlib,然后明确引用.NET 2.0程序集(例如,在c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727中)。它看起来像/ lib命令行选项可以让这个稍微简单一些,让你指定一个目录来查找引用,但我没有尝试过。

+0

这似乎工作(明确引用2.0库),但第一个建议只依赖于IL是相同的事实)似乎让我'暴露'(例如,没有编译时警告,我已经偏离了2.0版的组件)。 – sbohlen 2008-09-28 16:10:55