从.NET4.0编译.NET2.0 DLL

时间:2012-03-26 15:31:24

标签: c# .net dll

我使用的是.NET4.0,但出于兼容性原因,我想从c#编译成.NET2.0 dll。脚本中不应该使用.NET4.0特定的功能,因此它应该在.NET2.0环境中正常运行。在csc上是否有一些命令行语法,我可以使用?

指定版本号

5 个答案:

答案 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:

enter image description here

答案 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为目标。