C# 在运行时创建dll文件';我不能在c工作#
我试图在运行时创建一个DLL文件,事实上,我需要将编码数据保存到C# 在运行时创建dll文件';我不能在c工作#,c#,dll,.net-assembly,C#,Dll,.net Assembly,我试图在运行时创建一个DLL文件,事实上,我需要将编码数据保存到DLL。我的代码如下: class DllFile { public static void CreateDllFile(string source) { var provider = new CSharpCodeProvider(); var options = new CompilerParameters {
DLL
。我的代码如下:
class DllFile
{
public static void CreateDllFile(string source)
{
var provider = new CSharpCodeProvider();
var options = new CompilerParameters
{
OutputAssembly = "test.dll"
};
var results = provider.CompileAssemblyFromSource(options, new[] { source });
}
}
我希望从这段代码中创建一个dll文件,但它不会创建
The error is :The pointer for this method was null
致以最诚挚的问候。如果您有任何想法,我们将不胜感激。编译错误将通过返回值报告:
var results = provider.CompileAssemblyFromSource(options, new[] { source });
现在检查结果
,尤其是结果。错误
您还可以检查
结果。NativeCompilerReturnValue
-如果成功,则该值应为0
,如果失败,则该值应为非零。任何错误都将出现在CompileAsemblyFromSource方法返回的的errors属性中。你试过把它们打印出来看看是否有错误吗
CompilerResults results = provider.CompileAssemblyFromSource(options, new[] { source });
foreach(CompilerError error in results.Errors)
{
Console.WriteLine(error.ToString());
}
检查
compileasemblyfromsource
的结果。它很可能是在内存中构建的。检查结果,这里是MSDN文章底部的示例代码@500 InternalServerError我怎么做亲爱的朋友?谢谢亲爱的朋友错误是:Message=“此方法的指针为null”。当我展开结果错误时,我看到此错误:命名空间不能直接包含字段或方法等成员“@EA then:您发送给它的C#无效。修复source
@EA中的数据这里source
的值是多少?它应该是完全有效的C代码。毕竟,您正在将它传递给一个C#编译器,而不仅仅是一个随机的dll创建者。@EA这不是C#。您正在使用(本质上)垃圾调用C#编译器。那是行不通的。出于完全相同的原因,如果将DF3343223232JJFGJFHGJFGF
放入Visual Studio中的.cs
文件并点击“build”,则该方法不起作用。亲爱的朋友,我的错误是:错误是:此方法的指针为空。您需要为编译器提供正确的C代码,并包含命名空间、类声明和方法。你不能编译代码片段。你知道这段代码以前已经运行过了,我只需要在dll文件中存储编码数据。你知道我需要在dll中存储许可证代码,然后再次读取