在Ubuntu Linux 14.04上运行的Monodevelop Dnx Addin是否允许我们使用符号调试C#托管代码

时间:2015-12-17 23:17:59

标签: c# linux debugging monodevelop dnx

我今天发现当我安装Monodevelop AddInMaker时  Monodevelop Monodevelop DNX Addin位于Monodevelop 6.0之上,适用于Ubuntu  Linux,Monodevelop Run Debugger子菜单有一个Monosoft DNX  调试器和Microsoft .NET DNX调试器。当我点击这些  来自新控制台C#项目的两个调试器,我观察到了错误  消息,"不允许调试器激活"

我很想知道Monodevelop Dnx Addin是否允许我们使用符号调试C#托管代码。另外,我想了解如何使用Monodevelop 6.0以及在Ubuntu Linux 14.04上运行的Monodevelop AddInMaker和Monodevelop Monodevelop DNX Addin创建DNX C#项目。

使用以下步骤将现有项目迁移到Addin Maker是什么意思?

  • 将{86F6BF2A-E449-4B3E-813B-9ACC37E5545F}添加到项目的味道中 GUID即对于C#: {86F6BF2A-E449-4B3E-813B-9ACC37E5545F}; {FAE04EC0-301F-11D3-BF 4 B-00C04F79EFBC}

  • 添加对NuGet包的引用monodevelop.addins

  • 删除对MonoDevelop / Xamarin Studio附带的程序集的所有引用。删除所有插件依赖性声明 从您的清单和装配属性。

  • 为您删除的所有依赖项添加Addin引用 上一步。

DNX是否使用Roslyn csc.exe编译器?

1 个答案:

答案 0 :(得分:1)

使用适用于MonoDevelop的DNX插件调试DNX的支持有限。在Windows上,它根本不受支持。在Mac和Linux上,如果您安装了Mono 4.3并且用于运行MonoDevelop,那么如果您使用的是Mono DNX运行时,则可以使用断点。

在Mac和Linux上,有两种可能的DNX运行时:Mono和.NET Core。这些映射到project.json文件中的框架:dnx451和dnxcore50。使用dnvm工具安装这些运行时。不支持在使​​用.NET Core运行时进行调试。如果您使用Mono 4.3运行MonoDevelop,则在使用DNX Mono运行时进行调试将会遇到断点。然而,调试体验目前还不是很好。

Addin Maker仅用于构建和调试DNX插件本身。您可以生成.mpack并将其安装到MonoDevelop中,这样您就不必从源代码调试DNX插件。在某些时候,我将发布DNX插件,因此您不必从源代码构建它。

在New Project对话框的Other - ASP.NET - ASP.NET 5部分中,DNX插件提供了三个项目模板。

  

将现有项目迁移到Addin Maker意味着什么   使用以下步骤?

无需迁移任何内容。插件制造商仅用于构建DNX插件。如果在MonoDevelop中安装了DNX插件,则不需要使用DNX插件创建新的DNX项目。

  

DNX是否使用Roslyn csc.exe编译器?

插件使用Microsoft提供的DNX主机。据我所知,这使用了Roslyn的部件,但没有直接调用Roslyn csc.exe编译器。如果查看〜/ .dnx / runtimes目录,可以看到它包含一些Roslyn .dll,如Microsoft.CodeAnalysis.CSharp.dll。