Roslyn Version 1.2. * Hat eine Funktion namens MetadataReference.CreateAssemblyReference()
, die den Anzeigenamen der Assembly übernimmt und das entsprechende MetadataReference
Objekt zurückgibt. Zum Beispiel war ich in der Lage Bezugnahme auf verschiedene Baugruppen wie folge hinzuzufügen:Hinzufügen von MetadataReference in Roslyn Vs. Microsoft.CodeAnalysis
Compilation compilation = Compilation.Create("HelloWorld")
.AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"),
MetadataReference.CreateAssemblyReference("System.Linq"),
MetadataReference.CreateAssemblyReference("System.Data.Linq"),
MetadataReference.CreateAssemblyReference("System.Data"),
MetadataReference.CreateAssemblyReference("System.Data.DataSetExtensions"),
MetadataReference.CreateAssemblyReference("System.Xml"),
MetadataReference.CreateAssemblyReference("System.Xml.Linq"),
MetadataReference.CreateAssemblyReference("System"),
MetadataReference.CreateAssemblyReference("System.Core")
//MetadataReference.CreateAssemblyReference("System.Core"),
/*MetadataReference.CreateAssemblyReference("System")*/)
.AddSyntaxTrees(tree);
Dies ist jedoch nicht möglich erscheint mit dem Microsoft.CodeAnalysis Paket (dies ist das letzte Paket, das man von Nuget installieren kann). Dieses Paket hat einige Funktionen innerhalb MetadataReference
- aber sie erfordern entweder eine Assembly oder einen Dateipfad.
Gibt es die oben erwähnte einfachere Funktion in neueren Compiler-Paketen?
; Sie müssen angeben, wo die Baugruppe geladen werden soll. – SLaks
Oh - Bedeutung für eine Assembly wie "System.Data.DataSetExtensions" würde ich den vollständigen Pfad wie "C: \ Windows \ Microsoft.NET \ Assembly \ GAC_MSIL \ System.Data.DataSetExtensions \ v4.0_4.0.0 angeben müssen. 0__b77a5c561934e089 "? Gibt es einen einfachen Weg, um das zu bekommen? – shekhar