简体   繁体   English

在Roslyn与Microsoft.CodeAnalysis中添加MetadataReference

[英]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.

相关问题 使用Roslyn(Microsoft.CodeAnalysis)查询WebSite项目的信息 - Using Roslyn (Microsoft.CodeAnalysis) to query information of WebSite projects 如何在Roslyn(Microsoft.CodeAnalysis)中向生成的方法添加参数? -需要确切的语法 - How to add parameters to generated method in Roslyn ( Microsoft.CodeAnalysis )? - Need exact syntax 在Roslyn的新版本(Microsoft.CodeAnalysis)中,`Solution.LoadStandAloneProject`发生了什么? - What happened to `Solution.LoadStandAloneProject` in Roslyn's new version (Microsoft.CodeAnalysis)? 无法加载文件或程序集 Microsoft.CodeAnalysis - Could not load file or assembly Microsoft.CodeAnalysis Microsoft.CodeAnalysis无法加载文件 - Microsoft.CodeAnalysis failed to load file 在哪里阅读Microsoft.CodeAnalysis的文档? - Where to read docs for Microsoft.CodeAnalysis? C#vS2017项目未生成:无法加载文件或程序集Microsoft.CodeAnalysis - C# vS2017 project not building: Could not load file or assembly Microsoft.CodeAnalysis 为什么 Microsoft 分析器找不到 Microsoft.CodeAnalysis? - Why can't Microsoft analyzers find Microsoft.CodeAnalysis? Microsoft.CodeAnalysis:使用Newtonsoft JObject编译动态代码时出错 - Microsoft.CodeAnalysis: Error compiling dynamic code with Newtonsoft JObject 如何在 memory 中编译并使用 Microsoft.CodeAnalysis 获取程序集 - How to compile in memory and get assembly using Microsoft.CodeAnalysis
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM