【问题标题】:Roslyn with .NET core on linux: How can I load an external project?Roslyn with .NET core on linux:如何加载外部项目?
【发布时间】:2017-10-12 13:56:29
【问题描述】:

首先,我对罗斯林了解不多。我经历了一些热门的教程来生成代码以及如何解析包含代码的字符串。 到目前为止,一切对我来说都很清楚。

这是我的问题: 我在 Linux 上使用 dotnet core 1.0.1。 我创建了一个新项目,其中一些接口定义了一些属性。 我想做的是创建一个程序,我可以在其中加载项目,通过接口(*.cs 文件)运行并生成一些代码。 我的问题是,我不知道如何使用 Roslyn 加载/打开 c# 项目。

我找到的教程使用的是 windows 环境。这些示例不适用于我的环境,因为 MSBuild 或 Visual Studio 存在一些依赖项。我阅读并尝试了有关 AdhocWorkspace 的一些内容,但我无法以这种方式打开现有解决方案。

谁能告诉我如何开始? 是否可以打开/加载项目 (*.csproj) 并运行所有 *.cs 文件?

提前致谢。

【问题讨论】:

    标签: c# linux .net-core code-generation roslyn


    【解决方案1】:

    目前,在 .Net Core 上使用 Roslyn 打开 .Net 项目没有好的方法。

    请参阅this issue on the Roslyn repo,其中推荐的解决方案是使用来自 Omnisharp 项目的代码。

    【讨论】:

    • 我现在通过从 Omnisharp DotNetWorkspace 复制一些类来尝试它,这导致我遇到下一个问题,它使用 Microsoft.DotNet.ProjectModel 的功能,这些功能仍在使用 project.json 文件,而不是csproj 的。至少在我从 Nuget.org 获得的当前版本中。但是,尽管如此,通过查看 Omnisharp 的解决方案,我还是了解了如何解决它。非常感谢您的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2018-12-08
    相关资源
    最近更新 更多