リソース ファイルの生成に使用する Windows フォーム アプリケーションがあります。このアプリケーションにそのような機能を追加しようとしています。これにより、別の Windows フォーム アプリケーションを実行可能ファイルにコンパイルして、これらのリソースを含めることができます。ただし、別の Windows フォーム プロジェクト パーツをコンパイルすることに固執しています。
この記事に従おうとしましたが、これまでのコードは次のようになります。
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = true;
parameters.IncludeDebugInformation = true;
parameters.GenerateInMemory = false;
//parameters.TreatWarningsAsErrors = true;
parameters.WarningLevel = 3;
parameters.CompilerOptions = "/optimize";
parameters.OutputAssembly = "Program.exe";
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerResults results = codeProvider.CompileAssemblyFromFile(parameters, new string[] { "Program.cs" });
これを正しく行っているかどうか(Program.csファイルをコンパイルする必要があるかどうか)は正確にはわかりません。Program.cs ファイルは次のようになります。
using System;
using System.Windows.Forms;
namespace example
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
上記のコードでコンパイルしようとすると、次のエラーが発生します。
Line number 16, Error Number: CS0246, 'The type or namespace name 'Form1' could not be found (are you missing a using directive or an assembly reference?)
他のプロジェクトから何かをコンパイルしたことはありません。