gpt4 book ai didi

c# - 使用 Roslyn CSharpCompilation 生成 .NET Standard 2.0 DLL

转载 作者:行者123 更新时间:2023-11-30 20:16:50 25 4
gpt4 key购买 nike

我正在开发一项服务,给定 Swagger 定义的 URL,使用 NSwag 为该服务生成 C# 代理。整个代理包含在一个 C# 文件中。

我想使用 Roslyn 将生成的代码自动编译为 .NET Standard 2.0 DLL。这应该使用 CSharpCompilation 类在内存中完成。

为确认这是可能的,我在 Visual Studio 2017 中创建了一个 .NET Standard 2.0 类库项目,并为 Newtonsoft.Json (10.0.3) 和 System.ComponentModel.Annotations (4.4.0) 添加了 NuGet 依赖项。我可以看到该项目类型还引入了对 NETStandard.Library 的 SDK 依赖。

我知道我不会使用项目文件通过 Roslyn 生成 DLL,但是,我正在努力找出生成相同 DLL 的等效步骤。

最佳答案

构建 .NET Standard DLL 的关键是选择正确的 DLL 作为 MetadataReference 对象添加。我最初并不清楚这些是什么,因为 Visual Studio 2017 .csproj 格式没有明确引用它们。

我能够下载 netstandard.library 的 NuGet 包并循环遍历内容,将每个 DLL 作为元数据引用添加到其中。我相信这实现了与在 NetStandard.Library 上添加 .csproj SDK 依赖项相同的目标。

通过添加这些引用,我能够编译生成的代码。我通过从 .NET Core 2.0 控制台应用程序引用它来测试我的输出程序集。

可能有更简单的方法 - 我很乐意听到!

关于c# - 使用 Roslyn CSharpCompilation 生成 .NET Standard 2.0 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47784780/

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