Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有了NAnt,如何在面向.NET2.0运行时时使用C#3.0编译器?_C#_.net_.net 2.0_C# 3.0_Nant - Fatal编程技术网

有了NAnt,如何在面向.NET2.0运行时时使用C#3.0编译器?

有了NAnt,如何在面向.NET2.0运行时时使用C#3.0编译器?,c#,.net,.net-2.0,c#-3.0,nant,C#,.net,.net 2.0,C# 3.0,Nant,我正在使用NAnt 0.85构建一个遗留项目。脚本本身使用了csc任务(而不是msbuild任务),工作正常 该项目正在通过.NET3.5进行迁移。我们已经使用了VS2008和C#3.0,同时仍然针对.NET2.0Framework运行时 现在,当我们想要升级NAnt脚本,使用csc任务编译C#3.0代码时,问题就出现了 我通过修改NAnt.exe.config来添加net-3.5 framework部分,成功地用NAnt编译了C#3.0代码,但仍然无法找到一种方法来确保生成的程序集在.net

我正在使用NAnt 0.85构建一个遗留项目。脚本本身使用了
csc
任务(而不是
msbuild
任务),工作正常

该项目正在通过.NET3.5进行迁移。我们已经使用了VS2008和C#3.0,同时仍然针对.NET2.0Framework运行时

现在,当我们想要升级NAnt脚本,使用csc任务编译C#3.0代码时,问题就出现了

我通过修改NAnt.exe.config来添加net-3.5 framework部分,成功地用NAnt编译了C#3.0代码,但仍然无法找到一种方法来确保生成的程序集在.net 2.0运行时执行

更多问题:如果我使用LinqBridge在没有System.Core和.NET 3.5运行时的情况下利用Linq,csc任务将失败,并向我发出一条错误消息,指示所有与Linq相关的调用都不明确。事实上,NAnt csc任务似乎自动引用了
System.Core.dll
,这与我有效添加到csc任务下
部分的唯一引用冲突:
LinqBridge.dll


您现在知道如何解决这个问题了吗?

在.NET 2.0上执行主要是为了确保不添加对任何.NET 3.5特定库的引用。在现有库的.NET2.0SP1中添加了新类型(例如,
DateTimeOffset
)还有其他一些微妙之处,但这是另一回事

我怀疑LinqBridge问题是由于使用默认响应文件的csc造成的。有可能

noconfig="true"

我会解决这个问题的。文档指出,
noconfig
“指示编译器不要使用对程序集的隐式引用”,这听起来像是您想要的。

在.NET 2.0上执行主要是为了确保不添加对任何.NET 3.5特定库的引用。在现有库的.NET2.0SP1中添加了新类型(例如,
DateTimeOffset
)还有其他一些微妙之处,但这是另一回事

我怀疑LinqBridge问题是由于使用默认响应文件的csc造成的。有可能

noconfig="true"

我会解决这个问题的。文档中指出,
noconfig
“指示编译器不要使用对程序集的隐式引用”,这听起来像是您想要的。

noconfig=“true”实际上解决了我的问题。我认为奇怪的是,当NOCONFIG为false时,CCS.CORE DLL被CSC任务作为默认的依赖项来处理。在VS2008中,一般来说在csproj中,如果需要,必须手动添加它,这对我来说很有意义。它不像mscorlib,有很多程序集在里面,在从命令行编译测试程序时很方便。在csc.rsp中查找默认值。noconfig=“true”实际上解决了我的问题。我认为奇怪的是,当NOCONFIG为false时,CCS.CORE DLL被CSC任务作为默认的依赖项来处理。在VS2008中,一般来说在csproj中,如果需要,必须手动添加它,这对我来说很有意义。它不像mscorlib,有很多程序集在里面,在从命令行编译测试程序时很方便。在csc.rsp中查找默认值。