在.NET Core CLI下构建Mono.Options(dotnet构建)

沃伦·杨

我正在尝试使用.NET CoreMono.Options其命令行工具下使用。

最初,我尝试使用文件中的依赖项声明从NuGet加载它project.json,但dotnet restore抱怨该程序包与dnxcore50框架不兼容。²

因此,我决定尝试从源代码构建它。我在Mono.Options源代码中注意到它具有PCL构建选项。考虑到PCL可能非常接近.NET Core,我尝试创建一个DLL项目以启用该设置来构建它:

{
    "version": "0.0.0-d95ccb2ca5",
    "compilationOptions": {
        "emitEntryPoint": false,
        "define": [ "PCL" ],
    },

    "dependencies": {
        "NETStandard.Library": "1.0.0-rc2-23811"
    },

    "compile": [ "*.cs" ],

    "frameworks": {
        "dnxcore50": { }
    }
}

然后,我Options.cs将上面链接中download下载副本放在同一目录中,并说dotnet build,这会出现以下错误:

.../Mono/Options.cs(137,22): error CS0234: The
type or namespace name 'Serialization' does not exist in the namespace
'System.Runtime' (are you missing an assembly reference?)
.../Mono/Options.cs(729,27): error CS0246: The
type or namespace name 'KeyedCollection<,>' could not be found (are you
missing a using directive or an assembly reference?)

...加上其他所有归因于这两个关键错误的信息。

最终,我想到了我的问题:

  1. 为什么会System.Runtime.Serialization丢失?根据文档,它应该是.NET Core的一部分。

  2. 后来我为编译器抱怨的两个名称空间的父包添加了显式依赖项:

    ...
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "System.ObjectModel": "4.0.*",
                "System.Runtime": "4.1.0-rc2-23811"
            }
        }
    }
    

    dotnet restore然后成功,并且大多数构建错误都消失了,但是第一个错误Serialization仍然继续发生。.NET Core目前只是不完整吗?

  3. 除了等待类被移植以外,是否有其他解决方法?

  4. dnxcore50在初始项目文件中使用过,因为这是dotnet new生成它的方式。对这种变化dotnet5.4似乎根据是必要的ASP.NET 5包的搜索引擎,但这种变化与犹太.NET核心?³


阿西德斯

  1. 为什么?因为是2016年,.NET仍然没有内置的命令行选项解析功能。rr 也许微软对Xamarin的收购将使其Mono.Options包含在.NET Core中。同时...

  2. Mono.Options 在问完此问题后发布的4.2.2.1解决了此兼容性问题。

  3. ASP.NET 5程序包搜索结果表明,该搜索结果也netcore50应出于我的目的而工作,但是随后我收到了投诉no run-time assembly compatible with osx.10.10-x64

    这是在装有Mono 4.2.1的OS X 10.10计算机上发生的。Mono.Options 确实在此基础上建立。之所以出现此问题,是因为我试图将一些较简单的现有项目切换到这个新的,更轻便的运行时。

李Lex

System.Runtime.Serialization机制有意从.NET Core中删除(向下滚动至“二进制序列化”部分。)幸运的是,Mono.Options在PCL模式下构建该接口时实际上并没有使用该接口,因此解决方法很简单:将using System.Runtime.Serialization行向下移动几行到#else子句中,这样就不会看何时PCL定义。

如果可能,请避免使用RC2。它仍在开发中,我在GitHub上看到了几个问题。

进入RC1后,您可以使用http://packagesearch.azurewebsites.net查找缺少的软件包及其针对RC1的版本。

最好是基于某个.NET平台标准而不是单个配置文件(例如RC1中的5.4(RC2中的1.3))构建。

至于您的附带问题,

  • 已经有许多开源命令行解析库,因此Microsoft不会试图强迫您使用一个。
  • .NET Core与.NET Framework和Mono具有不同的设计。因此,迁移的痛苦依然存在,但是当Microsoft拥有所有工具链时就可以轻松地进行补救。等一下

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用dotnet CLI构建和运行ASP.NET Core WebAPI

来自分类Dev

从TFS 2015构建代理运行时,VS.NET Core项目的DotNet CLI构建失败

来自分类Dev

.Net Core 2.0 在 cygwin 下构建

来自分类Dev

.Net Core代码构建问题

来自分类Dev

.Net Core构建解决方案

来自分类Dev

.Net Core多项目Docker构建

来自分类Dev

.net core-docker compose的构建错误

来自分类Dev

在TFS上构建.Net Core的问题

来自分类Dev

在 TFS 上构建 .NET Core 的依赖问题

来自分类Dev

如何使用 .net Core 构建任务构建预发布包

来自分类Dev

默认情况下阻止.NET Core 3.0构建EXE文件

来自分类Dev

如何确保正确的 DotNet Core 包含在构建中?

来自分类Dev

.Net Core项目尝试有条件地引用32/64位程序集,但dotnet构建始终解析64位

来自分类Dev

.Net Core如果不带xml注释,如何构建文档

来自分类Dev

我可以使用.NET Core构建UWP吗?

来自分类Dev

ASP.NET Core WebApp不在Travis CI上构建

来自分类Dev

.NET Core配置的环境变量与构建配置

来自分类Dev

某些服务无法在ASP.NET Core中构建

来自分类Dev

基于.Net Core构建选择正确的Angular环境

来自分类Dev

VS2015构建无效的.NET Core代码

来自分类Dev

ASP.NET Core应用程序如何构建?

来自分类Dev

如何在asp.net core的后端构建表单?

来自分类Dev

在 VSTS 中构建时,asp .net core restore 命令失败

来自分类Dev

Appveyoyr 无法构建 ASP.NET Core WebApi 项目

来自分类Dev

.NET Core 和 Visual Studio 中的增量构建

来自分类Dev

Asp.net Core 2.2 中构建项目的问题

来自分类Dev

在构建服务器上构建.NET Core 1.0 RC2应用

来自分类Dev

PostSharp 5.1.9 - 在 linux 托管构建服务器 .net core 2 pos 上构建失败

来自分类Dev

Team City 构建 Dot Net Core 失败,但手动构建有效

Related 相关文章

热门标签

归档