我使用的是.NET4.0,但出于兼容性原因,我想从c#编译成.NET2.0 dll。脚本中不应该使用.NET4.0特定的功能,因此它应该在.NET2.0环境中正常运行。在csc上是否有一些命令行语法,我可以使用?
指定版本号答案 0 :(得分:6)
您提到csc.exe
,所以我假设您不会使用Visual Studio构建,而是通过命令行构建。另外,我假设构建机器上没有msbuild
。
我相信csc.exe
特定于每个版本。例如,在文件夹C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
中,您会找到csc.exe
,在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
文件夹中,您会找到另一个版本的csc.exe
。
要构建.NET 2.0 dll,您应该从v2.0文件夹(csc.exe
)引用C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
。
干杯!
答案 1 :(得分:2)
在Visual Studio中,您可以在项目的属性中将目标框架版本设置为.NET 2.0:
答案 2 :(得分:2)
如果您是从命令行手动编译的,那么您不能只运行v2框架csc吗?
例如(来自我机器的路径)
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe
或v4
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
答案 3 :(得分:0)
如果使用MSBuild构建(当然包括VS中的内容),则可以从项目属性对话框中指定目标框架版本。但是,如果您手动构建,则会显示there is no surefire way to express that restriction。
答案 4 :(得分:0)
在项目的属性中将目标框架设置为2.0。如果您正在使用2.0框架中不存在的LINQ等功能,则此方法将不起作用。如果您需要与2.0框架完全兼容,则应编写2.0代码,然后在需要时编译以4.0为目标。