[英]Adding MetadataReference in Roslyn Vs Microsoft.CodeAnalysis
Roslyn version 1.2.* has a function called MetadataReference.CreateAssemblyReference()
which takes the display name of the assembly and returns the appropriate MetadataReference
object. Roslyn版本1.2。*有一个名为
MetadataReference.CreateAssemblyReference()
的函数,它接受程序集的显示名称并返回相应的MetadataReference
对象。 For example I was able to add reference to various assemblies as follows: 例如,我能够添加对各种程序集的引用,如下所示:
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);
This however does not seem possible with the Microsoft.CodeAnalysis package (this is the latest package that one can install from Nuget). 但是,Microsoft.CodeAnalysis软件包似乎无法实现这一点(这是可以从Nuget安装的最新软件包)。 This package has a few functions inside
MetadataReference
- but they either require an Assembly or a file path. 此包在
MetadataReference
有一些函数 - 但它们要么需要汇编,要么需要文件路径。
Does that above mentioned simpler function exist in newer compiler packages? 上面提到的更简单的函数是否存在于较新的编译器包中?
您可以使用CLR加载程序加载程序集并找出它的加载位置:
typeof(DataSetExtensions).Assembly.Location
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.