2

.NET 4フレームワーク(クライアントプロファイルではない)を使用するC#でWPFを使用するプログラムがあり、「Source.txt」というソースファイルをコンパイルします。ただし、コンパイルするたびに、「エラーCS02345:タイプまたは名前空間名'Windows'は名前空間'System'に存在しません(アセンブリ参照がありませんか?)」というエラーが発生します。ファイルは作成されません。

Source.txtファイルの行を確認したところ、エラーが発生しているのは次のとおりです。

using System.Windows.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Forms;
using System.Management;

これは、メインプログラムからコンパイルするために使用しているコードです。

CompilerParameters Params = new CompilerParameters();
            Params.GenerateExecutable = true;
            Params.ReferencedAssemblies.Add("System.dll");
            Params.OutputAssembly = ServerNameBox.Text;
            Params.CompilerOptions = " /target:winexe";    

            string Source = compileSource;
            CompilerResults Results = new CSharpCodeProvider().CompileAssemblyFromSource(Params, Source);

            if (Results.Errors.Count > 0)
            {
                foreach (CompilerError err in Results.Errors)
                    System.Windows.Forms.MessageBox.Show(err.ToString());
            }
            else System.Windows.Forms.MessageBox.Show("Sucessfully Compiled Program!");

コードに示されているように、このプログラムをWindowsフォーム/ GUIアプリケーション( "/ target:winexe")としてコンパイルする必要があります。

この情報が不十分な場合は、お問い合わせください。

4

2 に答える 2

3

System.Windows.Forms.dllエラーが明らかに示唆しているように、 に追加する必要がありますReferencedAssemblies

于 2012-10-21T20:55:12.210 に答える
1

少なくとも次の参照を追加する必要があります。

Params.ReferencedAssemblies.Add("PresentationFramework.dll");
Params.ReferencedAssemblies.Add("System.Windows.Forms.dll");
Params.ReferencedAssemblies.Add("System.Management.dll");
Params.ReferencedAssemblies.Add("PresentationCore.dll");

また、 System.Windows.Linqが実際の名前空間であるとは思いません。LINQ が必要な場合は、System.Linq である必要があり、それは System.Core.dll にあります。

于 2012-10-21T21:04:56.533 に答える