【问题标题】:The project being published does not support the framework "dnx-clr-win-x86-beta6"?正在发布的项目不支持框架“dnx-clr-win-x86-beta6”?
【发布时间】:2015-09-16 00:51:46
【问题描述】:

注意:我在其他帖子中看到过这个错误,但问题是我看到的主要解决方案,显式定义框架而不是使用默认值,不起作用。

我的项目将 1.0.0-beta6 定义为 global.json 中的版本,据我所知,它没有使用任何不支持 beta6 的东西。我尝试使用框架“dnxcore50”和“dotnet”编译项目,但两者都不起作用(我的首选是 dotnet 以实现兼容性,但我会使用其中任何一个)。

这是我的 project.json:

   {
  "version": "1.0.0-*",
  "description": "Cormaran Class Library",
  "authors": [ "Me" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "Microsoft.CSharp": "4.0.0-beta-23019",
    "System.Net.Sockets": "4.0.10-beta-23123",
    "System.Text.Encoding": "4.0.10-beta-23019",
    "Newtonsoft.Json": "7.0.1",
    "System.Collections": "4.0.11-beta-23225"
  },

  "frameworks": {
    "dnxcore50": {

    }
  }
}

这是我的 global.json:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-beta6",
    "runtime": "clr",
    "architecture": "x86"
  }
}

现在,这可能不是静态的(但它可能会有所帮助),所以我将项目的 github 放在这里以供参考(如果您基于它做出任何陈述,我将在此处添加代码以防其他人有这个问题)。

https://github.com/ThePlatinumTaco/Cormaran/tree/master/src/

【问题讨论】:

    标签: .net nuget asp.net-core project.json


    【解决方案1】:

    有多种因素会导致此类问题。我花了一段时间才发现 VS/Nuget 有时会将依赖项放在真正应该放在 dnxcore50 特定依赖项中的主要依赖项部分。人们通过像您所做的那样从 project.json 中删除 dnx451 找到了解决这些错误的简单方法,但您不需要这样做。你只需要像这样移动依赖项:

    {
      "version": "1.0.0-*",
      "description": "Cormaran Class Library",
      "authors": [ "Me" ],
      "tags": [ "" ],
      "projectUrl": "",
      "licenseUrl": "",
    
      "dependencies": {
        "Newtonsoft.Json": "7.0.1"
      },
    
      "frameworks": {
        "dnx451" : {
            "frameworkAssemblies": {
                "System.Xml": ""
             }
        },
       "dnxcore50": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.0-beta-23019",
                "System.Net.Sockets": "4.0.10-beta-23019",
                "System.Text.Encoding": "4.0.10-beta-23019",
                "System.Collections": "4.0.10-beta-23019",
                "System.Xml.XDocument": "4.0.10-beta-23019"
            }
    
        }
      }
    }
    

    在“某些”情况下,您可能需要在 dnx451 下添加 frameworkAssemblies,它与 dnxcore50 下的一些依赖项相对应,例如,如果您还需要 dnxcore50 中的 System.Xml.XDocument,则需要使用 System.Xml。我补充说是为了给你一个例子,除非你使用 xml 类,否则你的项目中可能不需要它。

    您发布的另一个问题是版本不匹配,请注意我如何更正您发布的依赖项的版本以使它们保持在相同的 beta6 级别,而您发布的一些是更新的 beta7 版本,带有 -23225。这很令人困惑,因为那些没有说明他们使用哪个测试版,但有对应关系。

    要检查的其他内容是 wwwroot 文件夹中的 web.config 文件,该文件也可能包含有关要使用的运行时的设置,然后右键单击项目并转到属性以查看项目是否针对特定运行时进行了配置。所有这些都必须同步。

    在你的 global.json 中你也指定了真正对应于 dnx451 的“clr”,而 dnxcore50 对应于“coreclr”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多