Roslyn versione 1.2. * Ha una funzione denominata MetadataReference.CreateAssemblyReference()
che accetta il nome visualizzato dell'assembly e restituisce l'oggetto appropriato MetadataReference
. Per esempio sono stato in grado di aggiungere riferimento alle varie assemblee come segue:Aggiunta di 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);
Questo però non sembra possibile con il pacchetto Microsoft.CodeAnalysis (questo è l'ultimo pacchetto che si può installare da Nuget). Questo pacchetto ha alcune funzioni all'interno di MetadataReference
, ma richiedono un assembly o un percorso di file.
Questa funzione più semplice sopra descritta esiste nei pacchetti di compilatore più recenti?
No; devi dirgli da dove caricare l'assemblaggio. – SLaks
Oh - significato per un assembly come "System.Data.DataSetExtensions" dovrei specificare il percorso completo come "C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Data.DataSetExtensions \ v4.0_4.0.0. 0__b77a5c561934e089 "? C'è un modo semplice per ottenere questo? – shekhar