如何解决CSharpCodeProvider“字符串”不包含“选择”的定义 CSCC遇到System.Linq
我正在尝试使用 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。