gpt4 book ai didi

c# - 在 Roslyn 与 Microsoft.CodeAnalysis 中添加元数据引用

转载 作者:太空狗 更新时间:2023-10-29 20:36:24 26 4
gpt4 key购买 nike

Roslyn 版本 1.2.* 有一个名为 MetadataReference.CreateAssemblyReference() 的函数,它获取程序集的显示名称并返回适当的 MetadataReference 对象。例如,我能够添加对各种程序集的引用,如下所示:

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);

然而,这对于 Microsoft.CodeAnalysis 包似乎是不可能的(这是可以从 Nuget 安装的最新包)。此包在 MetadataReference 中有一些功能 - 但它们需要程序集或文件路径。

上面提到的更简单的函数是否存在于较新的编译器包中?

最佳答案

您可以使用 CLR 加载程序加载程序集并找出它从何处加载:

typeof(DataSetExtensions).Assembly.Location

关于c# - 在 Roslyn 与 Microsoft.CodeAnalysis 中添加元数据引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com