Codedom을 사용하는 응용 프로그램에서 안전하지 않은 코드를 컴파일하려고하지만 "/ unsafe"를 사용해야한다는 오류가 발생할 때마다 나는이 문제를 봤는데 추가했습니다 :Codedom에서 안전하지 않은 코드로 프로그램 작성
Parameters.CompilerOptions = "/unsafe";
내 코드 워드 코드. 이것에 대한 간단한 해결책이 있습니까?
편집 : 아직 명확하지 않은 경우 제 해결책이 작동하지 않았습니다.
편집 : 여기 수업이 있습니다.
public static bool Compile(string EXE_Name, string Source)
{
var Compiler = new CSharpCodeProvider();
var Parameters = new CompilerParameters
{
CompilerOptions = "/unsafe"
};
CompilerResults cResults = default(CompilerResults);
Parameters.GenerateExecutable = true;
Parameters.OutputAssembly = EXE_Name;
Parameters.ReferencedAssemblies.Add(typeof(System.Xml.Linq.Extensions).Assembly.Location);
Parameters.ReferencedAssemblies.Add("System.dll");
Parameters.ReferencedAssemblies.Add("System.Core.dll");
Parameters.ReferencedAssemblies.Add("System.Data.dll");
Parameters.ReferencedAssemblies.Add("System.Data.DataSetExtensions.dll");
Parameters.ReferencedAssemblies.Add("System.Deployment.dll");
Parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
Parameters.ReferencedAssemblies.Add("System.Drawing.dll");
Parameters.ReferencedAssemblies.Add("System.Xml.dll");
Parameters.CompilerOptions = " /target:winexe";
Parameters.TreatWarningsAsErrors = false;
cResults = Compiler.CompileAssemblyFromSource(Parameters, Source);
if (cResults.Errors.Count > 0)
{
foreach (CompilerError CompilerError_loopVariable in cResults.Errors)
{
CompilerError error = CompilerError_loopVariable;
MessageBox.Show("Error: " + error.ErrorText, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return false;
}
else if (cResults.Errors.Count == 0)
{
return true;
}
return true;
}
어떤 점에서 솔루션이 작동하지 않았습니까? 당신은 분명히 더 많은 정보를 얻었습니다 - 우리와 공유하십시오. –
나는 단순히 컴파일러 오류가 발생했다 : "오류 : 안전하지 않은 코드는/unsafe로 컴파일하는 경우에만 나타날 수 있습니다." – user1742916