如何在运行时为源码编译的文件添加嵌入资源我正在写一个小程序一个从源码编译文件的程序(.cs)codefileusingafunction:publicstaticboolCompileExecutable(StringsourceName){//你编译的源文件FileInfosourceFile=newFileInfo(sourceName);//创建C#代码提供者CodeDomProviderprovider=CodeDomProvider.CreateProvider("CSharp");//创建一个bool变量,供编译后使用,查看是否有错误boolcompileOk=false;//为exe命名StringexeName=String.Format(@"{0}{1}.exe",System.Environment.CurrentDirectory,sourceFile.Name.Replace(".","_"));//创建一个变量cp来设置编译器参数CompilerParameterscp=newCompilerParameters();//您可以生成一个dll或一个exe文件,在这种情况下我们将生成一个exe,因此我们将其设置为truecp.GenerateExecutable=true;//设置名称cp.OutputAssembly=exeName;//将exe保存为物理文件cp.GenerateInMemory=false;//设置补偿不要将警告视为错误cp.TreatWarningsAsErrors=false;//让它编译CompilerResultscr=provider.CompileAssemblyFromFile(cp,sourceName);//如果有超过0个错误...if(cr.Errors.Count>0){//一个消息框显示发生的错误MessageBox.Show("Errorsbuilding{0}into{1}"+sourceName+cr.PathToAssembly);//为代码中出现的每个错误创建一个单独的消息框foreach(CompilerErrorceincr.Errors){MessageBox.Show("{0}"+ce.ToString());}}//如果没有错误...else{//消息框显示编译结果和成功消息MessageBox.Show("Source{0}builtinto{1}successfully."+sourceName+cr.PathToAssembly);}//如果有错误...if(cr.Errors.Count>0){//我们在开始时创建的bool变量设置为flase,因此函数返回falsecompileOk=false;}//如果没有错误...else{//我们返回一个真(成功)compileOk=t后悔;}//返回结果returncompileOk;我想要实现的是添加用户选择的文件资源(图像、mp3、avi、ttf等),这些资源将作为嵌入资源添加到使用上述函数编译的内容中我们如何将嵌入资源添加到文件中在运行时从源代码编译?您需要创建一个包含要作为资源嵌入的文件的.resources文件,然后使用EmbeddedResources属性在CompilerParameter的实例中引用生成的资源文件。按照上面第一个链接(引用System.Resources.ResourceWriter的部分)的.resources文件部分中的资源中的指示生成一个临时文件。然后根据你的问题中的代码(以及EmbeddedResources文档中的例子),你会引用它使用:如果它对你有用,你需要了解更多关于C#的学习教程,希望你多加关注——如果(provider.Supports(GeneratorSupport.Resources)){cp.EmbeddedResources.Add("pathToYourGeneratedResourceFile");}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
