Nach etwas Durchforsten des Internets habe ich nun folgenden Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp"); string Output = @"created.exe"; System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = true; parameters.OutputAssembly = Output; parameters.ReferencedAssemblies.Add(@"C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"); parameters.Win32Resource = @"myResources.res";
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, textBox1.Text);
if (results.Errors.Count > 0) { string Source = ""; foreach (CompilerError CompErr in results.Errors) { Source += "Line number " + CompErr.Line + ", Error Number: " + CompErr.ErrorNumber + ", '" + CompErr.ErrorText + ";" + Environment.NewLine + Environment.NewLine; MessageBox.Show("Error:\n" + Source); } } else { MessageBox.Show("Successful"); } |
Mit parameters.Win32Resource = @"myResources.res"; gebe ich den Pfad zu der Ressourcendatei an.
Jedoch bekomme ich immer die Fehlermeldung, dass es eine ungültige Win32-Resourcendatei sei.
Erzeugt habe ich diese mit:
C#-Quelltext
1: 2: 3: 4:
| IResourceWriter writer = new ResourceWriter(@"myResources.res"); writer.AddResource(string1, "123456"); writer.Generate(); writer.Close(); |