c# - CSharpCodeProvider "string"不包含 "Select"的定义。 CSCC 遇到 System.Linq 问题

标签 c# .net .net-4.0 csharpcodeprovider

我正在尝试使用 CSharpCodeProvider编译一段代码

错误是:

c:\...\crust.cs(551,48) : error CS1061: 'string' does not contain a definition for 'Select' and no extension method 'Select' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)        

正在编译的代码是:

using System;
...
using System.Linq;

...

          return new string(str.Substring(1).Select(character => (char)((character - 54545) ^ key)).ToArray());
...

编译源代码如下:

...
                String exeName = String.Format("NAME.exe");

                CompilerParameters cp = new CompilerParameters
                {
                    GenerateExecutable = true,
                    GenerateInMemory = false,
                    OutputAssembly = "NAME.exe",
                    CompilerOptions = "/target:exe /platform:x64"
                };

                cp.ReferencedAssemblies.Add("System.dll");
                ...
                cp.ReferencedAssemblies.Add("System.Linq.dll");
                cp.GenerateExecutable = true;
                cp.OutputAssembly = exeName;
                cp.GenerateInMemory = false;
                cp.TreatWarningsAsErrors = false;
                CompilerResults cr = provider.CompileAssemblyFromFile(cp,
                    sourceName);
...

其他 system.linq 方法也不起作用。

注意事项: 编译器是64位的 正在将源编译为 64 位 编译器在 .net framework 4.0 源代码正在编译为 .net 4.0

最佳答案

可能是因为您还没有为“System.Linq”包声明 using 语句:

using System.Linq;

在 cs 文件中检查并确保明确声明了 using 语句。

关于c# - CSharpCodeProvider "string"不包含 "Select"的定义。 CSCC 遇到 System.Linq 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64622158/

相关文章:

c# - 为什么这段使用 yield return 的代码可以编译?

c# - 如何暂停在工作线程上运行的任务并等待用户输入?

c# - 为什么我不能在 XAML 中定义带有转换的几何图形?

.net - C# WPF 项目无法调用 F# 库

c# - ASP.Net MVC3 - 将 Razor 标记作为参数传递

C# 程序集在子域中创建实例

c# - 奇数返回语法语句

c# - 有选择地阻止调试器在第一次出现异常时停止

vb.net - 为什么 VB.net 4.0 框架应用程序(标准 EXE)会尝试写入 HKLM 中的 ASP.net 注册表项?

visual-studio-2010 - 在同一项目中使用 Entity Framework 3.5 和 4.0