で新規作成.exe
していWPF forms
ます。問題は、いくつかのアセンブリを参照する必要があることです。
これは私がそれらを追加する方法です:
var p = new CompilerParameters
{
GenerateExecutable = true,
TreatWarningsAsErrors = false,
CompilerOptions = "/t:winexe",
IncludeDebugInformation = false,
OutputAssembly = dlg.FileName,
};
string[] assemblies = {
"System", "System.Core", "System.Data", "mscorlib",
"System.Drawing", "System.Windows.Forms", "Microsoft.CSharp",
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WindowsBase",
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationCore",
@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFrameWork"
};
foreach (string a in assemblies)
{
p.ReferencedAssemblies.Add(a + ".dll");
}
Windowsbase.dll
これは正常に動作していますが、 、、 の絶対パスを入力する必要があることに気付くでしょう。そうしないPresentationCore.dll
とPresentationFrameWork.dll
、見つからないためエラーがスローされます。これはおそらくすべてのコンピューターで機能するとは限りません。
どうすればいいですか?
(プロジェクト フォルダーに 3 を含めて、.dll
それらをアプリケーションと共に出荷し、相対パスを参照するだけでよいと思います (動作するかどうかは今はテストできません)。しかし、他の方法はありますか?)