2015-06-27 8 views
6

ich meine, etwas dumm vor sich geht als die übrigen Baugruppenebene Attribute ganz gut aufgenommen werden kann, aber wann immer AssemblyCopywriteAttribute oder AssemblyCompanyAttribute deklariert wird es führt zu CS0116 und CS1730 Fehler. Angesichts der Tatsache, dass der Code keine Methodendeklarationen enthält, sehe ich nicht, wie CS0116 anwendbar ist und es keine Typdefinitionen gibt, so dass nicht sicher ist, wie CS1730 anwendbar ist.Compile Fehler beim AssemblyCopyrightAttribute oder AssemblyCompanyAttribute über CodeDomProvider mit

Fehler

Error Number: CS0116 
Error Text: A namespace cannot directly contain members such as fields or methods 

Error Number: CS1730 
Error Text: Assembly and module attributes must precede all other elements defined in a file except using clauses and extern alias declarations 

Quelldatei:

using System; 
using System.Reflection; 
using System.Runtime.InteropServices; 

[assembly: ComVisible(false)] 
[assembly: CLSCompliant(false)] 
[assembly: AssemblyCompany("My Company")]; // this results in a compile time error 
[assembly: Guid("9d8271d9-957f-46dc-bcc6-1055137b4fad")] 
[assembly: AssemblyTitle("CCDA MAP")] 
[assembly: AssemblyDescription("The mapping logic to source a CXD and populate a CCDA")] 
[assembly: AssemblyCopyright("My Company 2015")]; // this results in a compile time error 
[assembly: AssemblyCulture("en-US")] 
[assembly: AssemblyVersion("2.2.0")] 
[assembly: AssemblyFileVersion("2.2.0.123")] 
[assembly: AssemblyConfiguration("DEBUG")] 
[assembly: AssemblyMetadataAttribute("Built","06/27/2015")] 
[assembly: AssemblyMetadataAttribute("Host","JORMUNGANDR")] 
[assembly: AssemblyMetadataAttribute("The answer","42")] 
[assembly: AssemblyMetadataAttribute("Document Type","CCDA")] 
[assembly: AssemblyMetadataAttribute("Document Spec Version","2.0")] 

Compilation Logic

CodeDomProvider provider = CodeDomProvider.CreateProvider("C#"); 
var source = Directory.GetFiles(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),"codedom"),"*.cs").ToList().Dump("Map Source").Select(i=>File.ReadAllText(i)).ToArray(); 
var parameters = new CompilerParameters{ GenerateInMemory = true, OutputAssembly = string.Format("Map.dll",count),TreatWarningsAsErrors = true, WarningLevel = 4}; 
parameters.ReferencedAssemblies.Add("mscorlib.dll"); 
var results = provider.CompileAssemblyFromSource(parameters, source); 

Antwort

7

Der Fehler ist c aused durch fehlerhafte Semikolons im Text:

[assembly: AssemblyCopyright("My Company 2015")]; // this results in a compile time error 

Sollte sein:

[assembly: AssemblyCopyright("My Company 2015")] // this does not result in a compile time error 

Und:

[assembly: AssemblyCompany("My Company")]; // this results in a compile time error 

werden sollten:

[assembly: AssemblyCompany("My Company")] // this does not result in a compile time error 

Entfernen sie die Fehler aufräumt du siehst.

Verwandte Themen