c# - 如何使用 C# 4.0 编译器让 MonoDevelop 以 .NET 2.0 框架为目标?

标签 c# .net dll mono monodevelop

这很容易使用 Visual Studio 实现,但我需要使用 MonoDevelop 来实现这一点,因为 Visual Studio 编译的 DLL 不能很好地与 Unity 配合使用。 MonoDevelop DLL 工作正常,但我想在面向 .NET 2.0 运行时时使用默认函数参数(C# 4.0 功能)。

这在 MonoDevelop 中可行吗?我该如何设置?

添加:为 Visual Studio 和 MonoDevelop 构建命令行

为了便于比较,我对参数进行了排序:

MonoDevelop : Target = Mono/.NET 4

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
/noconfig
/warn:4
"/define:TRACE"
/optimize+
"/out:C:\TestLibraries\TestEditor\bin\Release\TestEditor.dll"
/t:library

/nologo

"/r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll"
"/r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll"
"/r:C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEditor.dll"
"/r:C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEngine.dll"

/fullpaths
/utf8output

MonoDevelop : Target = Mono/.NET 3.5(第一个有趣的)

C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
/warn:4
"/define:TRACE"
/optimize+
"/out:C:\TestLibraries\TestEditor\bin\Release\TestEditor.dll"
/t:library

/nologo
-nostdlib

"/r:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll"
"/r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll"
"/r:C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEditor.dll"
"/r:C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEngine.dll"

/fullpaths
/utf8output

Visual Studio:目标 = .NET 4

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe
/noconfig
/nowarn:1701,1702
/warn:4
/define:TRACE
/optimize+
/out:obj\Release\TestEditor.dll
/target:library

/nostdlib+ /errorreport:prompt

/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll"
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll"
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll"
/reference:"C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEngine.dll"

/debug:pdbonly
/filealign:512

Visual Studio : Target = .NET 3.5(第二个有趣的)

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe
/noconfig
/nowarn:1701,1702
/warn:4
/define:TRACE
/optimize+
/out:obj\Release\TestEditor.dll
/target:library

/nostdlib+ /errorreport:prompt

/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll
/reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll"
/reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll
/reference:"C:\Program Files (x86)\Unity\Editor\Data\Managed\UnityEngine.dll"

/debug:pdbonly
/filealign:512

最佳答案

最新稳定的 Mono 版本 (2.10.9) 附带的 2.0 C# 编译器 (mcs/gmcs) 支持默认函数参数。我刚刚新建了一个console工程,把target framework改成2.0,默认函数参数编译成功。

关于c# - 如何使用 C# 4.0 编译器让 MonoDevelop 以 .NET 2.0 框架为目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12118721/

相关文章:

c# - 是否可以仅在扩展内部满足条件时才调用方法?

c++ - 如何将对 ole32.dll 的调用重定向到我自己的代理 DLL?

windows - 如何知道一个dll是否使用ASLR?

dll - 使用 D1 和 dll 会出现什么问题?

c# - 改进 Azure 表存储更新插入

c# - 如何在文本框中设置光标位置

c# - WPF : webbrowser call async silverlight method synchronously in javascript

c# - MySQL "network-related or instance-specific error occurred while establishing a connection to SQL Server"

.net - 在 ASP.NET 中,如何检测 Word 2003 或 2007 文件中的密码?

c# - TextBox.Lines 属性,签名是可读写的,但我得到只读且没有有用的错误