问题标签 [csharpcodeprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
807 浏览

c# - CSharpProvider 运行时编译找不到 DLL

我正在使用 CSharpCodeProvider 在运行时编译一个 DLL。我的代码在某些机器上运行良好,但在其他机器上失败并出现以下错误:

错误 CS0006:找不到元数据文件“EntityFramework.dll”

这是一个代码片段:

关于为什么会发生这种情况的任何想法?

0 投票
1 回答
710 浏览

.net - CSharpCodeProvider 设置和验证 .NET 配置文件版本

我在我的应用程序中使用单声道作为嵌入式脚本环境。对于脚本的编译,我使用 Microsoft.CSharp.CSharpCodeProvider。现在我需要一些 4.0 或 4.5 功能,例如 System.Numerics。但是,在编译器选项中引用 System.Numerics.dll 只会让我出错

(0,0):错误 CS0006:找不到元数据文件“System.Numerics.dll”

由于提供程序的装配位置指向 2.0.0.0 gac,因此看到此失败我并不感到惊讶。但是,有了 mono-2.11.4 以及 v4.0 和 v4.5 配置文件,我想知道为什么提供者没有找到所需的程序集,或者它是否甚至按要求提供了 v4.0。

0 投票
1 回答
866 浏览

c# - 在 ASP.NET 中使用简单的 CSharpCodeProvider 时出现与 LINQ 相关的错误

我创建了一个非常简单的自定义编译器:

在我的 web.config 文件中,我复制/粘贴了现有配置来声明这个新编译器。

但是在使用以下代码访问用户控件时出现错误:

它失败><AAA>。某处应该缺少某些东西(使用?),但是使用标准编译器可以很好地构建Microsoft.CSharp.CSharpCodeProvider

错误信息是:

编译器错误消息:CS1525:无效的表达式术语“>”

更新:它似乎与 LINQ 有关。它在控制代码中使用 LINQ 的所有页面上都失败。但是 System.Core.dll 包含在 Web.config 中。

Update2:我能够在一个新的 Web 应用程序项目中重现它。

  1. 添加一个新类:

    }

  2. 更新web.config

    /li>
  3. 更改Default.aspx为:

    /li>

如果我将项目更新为4.0,它可以工作。但我不能在其他人中这样做。

0 投票
3 回答
271 浏览

c# - 调用运行时编译的代码时,如何访问当前应用程序中的对象?

我当前的项目是一个应用程序,它允许您使用 C# 编写代码,然后使用 CSharpCodeProvider 执行它。只要代码本身是一个完整的应用程序,此时它就可以正常工作,例如:

然后应用程序使用CompileAssemblyFromSourcewith编译给定的代码GenerateInMemory = true,然后在编译的程序集中调用该Main方法。

我的问题是,如何让编译后的代码访问主应用程序中的对象?

0 投票
3 回答
701 浏览

c# - 从内存中释放 CSharpCodeProvider 生成的代码

我使用 CSharpCodeProvider 在内存中编译并生成了一个新的命名空间,仅供临时使用。但是这个命名空间应该在一段时间后从内存中删除,以允许下一个生成的代码覆盖所有生成的类和方法的相同标识符。

0 投票
1 回答
1392 浏览

c# - 使用 CSharpCodeProvider 进行慢速动态编译

我试图将动态编译与标准编译进行比较。而且动态编译似乎要慢很多。根据我的基准,慢了 1400%。

这是生成调用动态编译代码的委托的方法:

这是我为测试其性能而创建的代码:

根据我的测试,动态编译要慢得多。这可以以某种方式解决吗?也许问题出在我进行基准测试的方式上?

0 投票
0 回答
117 浏览

c# - CSharpCodeProvider 和混淆

我想在我的 Web 应用程序中动态创建一个 DLL,它可以生成一个唯一的类(特别是其中的一个唯一变量,对于这个下载来说是唯一的),然后可以由用户下载。

我可以用 CSharpCodeProvider 做到这一点,但是我不希望向任何反映 DLL 的人透露这个密钥。

有没有办法可以在程序集中混淆这个值?

0 投票
0 回答
310 浏览

c# - 执行期间在C#中生成res文件

我正在编写一个小工具来创建“iconholder-apps”(没有/小代码部分的应用程序 - 仅限信息框)。

该应用程序应该包含多个图标(win32 res 资源),并且应该从我的 .net 应用程序创建(使用CSharpCodeProvider

是否可以通过 winapi / .NET 2.0 创建已编译的 win32 资源,或者是否有 res 文件的文档(因此可以使用原始字节输出创建这些文件)

(子问题:rehacker 如何“重新编译”资源?)

或者正在使用唯一的选项进行编译rc.exe(如果可能,我不喜欢嵌入 rc.exe)

或者是否有另一个选项可以创建包含多个图标的资源(可用作链接/快捷方式图标)

0 投票
6 回答
52386 浏览

c# - 由于保护级别错误,成员无法访问

在本主题内连接: 如何将我的班级中的字符串连接到表格

我试图做与他们的答案相关的解决方案(特别是杰里米爵士的回答),但这个错误不断出现

“KeyWord.KeyWord.keywords”因其保护级别而无法访问

KeyWords.cs 的代码:

main.cs 的代码

我该怎么办?

0 投票
1 回答
1706 浏览

c# - 尝试加载使用 C# 代码提供程序编译的程序集时出现奇怪的 Assembly.Load 错误

我正在尝试使用 C# 代码提供程序从我的代码编译程序集。

当我使用 compilerResult.CompiledAssembly 访问已编译的程序集时,一切正常。但是,当我改为执行 Assembly.Load(path) 时,会出现以下异常:

System.IO.FileLoadException:无法加载文件或程序集“C:\Users\Name\Desktop\output.dll”或其依赖项之一。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047)

我究竟做错了什么?

这是代码: