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");

私はこれを1週間以上試しているので、誰かが私を助けてくれることを願っています。ありがとうございました。

4

0 に答える 0