2

我正在尝试使用 CSharpCodeProvider 生成一个 exe,该 exe 将是一个 Windows 窗体项目。exe 必须有一个资源,生成的程序集将在运行时访问该资源。现在要生成该资源,我使用 ResourceWriter 类,然后将其附加到编译器选项 EmbeddedResources。但它似乎不起作用,我得到了 MissingManifestResourceException。

这是代码:

FileStream fs = new FileStream("Form1.resources", FileMode.Create);
        ResourceWriter writer2 = new ResourceWriter(fs);
        writer2.AddResource("bitmap", 3);
        writer2.Generate();
        writer2.Close();

        CSharpCodeProvider code = new CSharpCodeProvider();

        CompilerParameters options = new CompilerParameters();
        options.GenerateExecutable = true;
        options.EmbeddedResources.Add("Form1.resources");

        options.OutputAssembly = @"C:\screen.exe";


        options.GenerateInMemory = false;


        options.TreatWarningsAsErrors = false;

        options.ReferencedAssemblies.Add("System.Windows.Forms.dll");
        options.ReferencedAssemblies.Add("System.dll");
        options.ReferencedAssemblies.Add("System.Drawing.dll");
        //options.ReferencedAssemblies.Add("System.Resources.dll");

        CompilerResults res = code.CompileAssemblyFromFile(options, "Program.cs", "Form1.cs", "Form1.Designer.cs");

希望有人能够帮助我,因为我已经尝试了一个多星期。谢谢你。

4

0 回答 0