问题标签 [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.
c# - CSharpProvider 运行时编译找不到 DLL
我正在使用 CSharpCodeProvider 在运行时编译一个 DLL。我的代码在某些机器上运行良好,但在其他机器上失败并出现以下错误:
错误 CS0006:找不到元数据文件“EntityFramework.dll”
这是一个代码片段:
关于为什么会发生这种情况的任何想法?
.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。
c# - 在 ASP.NET 中使用简单的 CSharpCodeProvider 时出现与 LINQ 相关的错误
我创建了一个非常简单的自定义编译器:
在我的 web.config 文件中,我复制/粘贴了现有配置来声明这个新编译器。
但是在使用以下代码访问用户控件时出现错误:
它失败>
了<AAA>
。某处应该缺少某些东西(使用?),但是使用标准编译器可以很好地构建Microsoft.CSharp.CSharpCodeProvider
。
错误信息是:
编译器错误消息:CS1525:无效的表达式术语“>”
更新:它似乎与 LINQ 有关。它在控制代码中使用 LINQ 的所有页面上都失败。但是 System.Core.dll 包含在 Web.config 中。
Update2:我能够在一个新的 Web 应用程序项目中重现它。
添加一个新类:
}
更新
/li>web.config
更改
/li>Default.aspx
为:
如果我将项目更新为4.0
,它可以工作。但我不能在其他人中这样做。
c# - 调用运行时编译的代码时,如何访问当前应用程序中的对象?
我当前的项目是一个应用程序,它允许您使用 C# 编写代码,然后使用 CSharpCodeProvider 执行它。只要代码本身是一个完整的应用程序,此时它就可以正常工作,例如:
然后应用程序使用CompileAssemblyFromSource
with编译给定的代码GenerateInMemory = true
,然后在编译的程序集中调用该Main
方法。
我的问题是,如何让编译后的代码访问主应用程序中的对象?
c# - 从内存中释放 CSharpCodeProvider 生成的代码
我使用 CSharpCodeProvider 在内存中编译并生成了一个新的命名空间,仅供临时使用。但是这个命名空间应该在一段时间后从内存中删除,以允许下一个生成的代码覆盖所有生成的类和方法的相同标识符。
c# - 使用 CSharpCodeProvider 进行慢速动态编译
我试图将动态编译与标准编译进行比较。而且动态编译似乎要慢很多。根据我的基准,慢了 1400%。
这是生成调用动态编译代码的委托的方法:
这是我为测试其性能而创建的代码:
根据我的测试,动态编译要慢得多。这可以以某种方式解决吗?也许问题出在我进行基准测试的方式上?
c# - CSharpCodeProvider 和混淆
我想在我的 Web 应用程序中动态创建一个 DLL,它可以生成一个唯一的类(特别是其中的一个唯一变量,对于这个下载来说是唯一的),然后可以由用户下载。
我可以用 CSharpCodeProvider 做到这一点,但是我不希望向任何反映 DLL 的人透露这个密钥。
有没有办法可以在程序集中混淆这个值?
c# - 执行期间在C#中生成res文件
我正在编写一个小工具来创建“iconholder-apps”(没有/小代码部分的应用程序 - 仅限信息框)。
该应用程序应该包含多个图标(win32 res 资源),并且应该从我的 .net 应用程序创建(使用CSharpCodeProvider
)
是否可以通过 winapi / .NET 2.0 创建已编译的 win32 资源,或者是否有 res 文件的文档(因此可以使用原始字节输出创建这些文件)
(子问题:rehacker 如何“重新编译”资源?)
或者正在使用唯一的选项进行编译rc.exe
(如果可能,我不喜欢嵌入 rc.exe)
或者是否有另一个选项可以创建包含多个图标的资源(可用作链接/快捷方式图标)
c# - 由于保护级别错误,成员无法访问
在本主题内连接: 如何将我的班级中的字符串连接到表格
我试图做与他们的答案相关的解决方案(特别是杰里米爵士的回答),但这个错误不断出现
“KeyWord.KeyWord.keywords”因其保护级别而无法访问
KeyWords.cs 的代码:
main.cs 的代码
我该怎么办?
c# - 尝试加载使用 C# 代码提供程序编译的程序集时出现奇怪的 Assembly.Load 错误
我正在尝试使用 C# 代码提供程序从我的代码编译程序集。
当我使用 compilerResult.CompiledAssembly 访问已编译的程序集时,一切正常。但是,当我改为执行 Assembly.Load(path) 时,会出现以下异常:
System.IO.FileLoadException:无法加载文件或程序集“C:\Users\Name\Desktop\output.dll”或其依赖项之一。给定的程序集名称或代码库无效。(来自 HRESULT 的异常:0x80131047)
我究竟做错了什么?
这是代码: