【问题标题】:Converting a project to PCL & .NET Core gives CS0433 Error将项目转换为 PCL 和 .NET Core 会出现 CS0433 错误
【发布时间】:2016-02-26 14:32:33
【问题描述】:

我已经采用了一个现有项目https://github.com/cskardon/Neo4jClient/ 并尝试移植到 dotnet 核心,因为窥视者要求这样做。

到目前为止 - 我已经添加了一个 PCL 项目 (uwp, dnxcore50, net46) 和一个共享项目 - 将所有代码转移到共享项目中,然后将“完整”内容(如 Transaction.Scope 移动到 Neo4jClient.Full项目。所以我有(目前):

  • Neo4jClient (PCL)
  • Neo4jClient.Full
  • Neo4jClient.Shared

(在 Github 上:https://github.com/cskardon/Neo4jClient/tree/Test-Portable

我已经编译了所有代码,我完全意识到我缺少功能 - 但目前我很想看看我是否可以让它在通过 yo aspnet in @ 生成的控制台应用程序中工作987654328@。

所以我生成了一个 nuget 包并将其放入我当地的 nuget 商店(如果您想亲自尝试:https://www.myget.org/F/cskardon/api/v3/index.json)将其添加到我的project.json,如下所示:

{
  "version": "1.0.0-*",
  "description": "TestNeo4jClient Console Application",
  "authors": [ "" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "compilationOptions": {
    "emitEntryPoint": true
  },

  "tooling": {
    "defaultNamespace": "TestNeo4jClient"
  },

  "dependencies": {
      "Neo4jClient" : "2.0.0-PortableAlpha00001"
  },

  "commands": {
    "TestNeo4jClient": "TestNeo4jClient"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Console": "4.0.0-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

dnu restore - 一切正常

dnu build 给出这些错误:

  • ApplyProjectInfo.cs(1,29): DNX,Version=v4.5.1 error CS0433: The type 'AssemblyDescriptionAttribute' exists in both 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
  • D:\projects\VsCode\TestNeo4jClient\Program.cs(8,18): DNX,Version=v4.5.1 error CS0518: Predefined type 'System.Object' is not defined or imported

PCL 项目的project.json 如下所示:

{
  "supports": {
    "net46.app": {},
    "uwp.10.0.app": {},
    "dnxcore50.app": {}
  },
  "dependencies": {
    "Microsoft.NETCore": "5.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.0",
    "Newtonsoft.Json": "8.0.2",
    "NuSpec.ReferenceGenerator": "1.4.2",
    "System.Collections.NonGeneric": "4.0.0",
    "System.ComponentModel": "4.0.0",
    "System.ComponentModel.TypeConverter": "4.0.0",
    "System.Runtime.Serialization.Primitives": "4.0.10"
  },
  "frameworks": {
    "dotnet": {
      "imports": "portable-net452+win81"
    }
  }
}

我认为我的 PCL project.json 错误 - 但我不知道该怎么做。

PS。 nuspec 文件如下所示:

  <dependencies>
    <group targetFramework="dotnet">
      <dependency id="Microsoft.CSharp" version="4.0.0" />
      <dependency id="Microsoft.VisualBasic" version="10.0.0" />
      <dependency id="Newtonsoft.Json" version="8.0.2" />
      <dependency id="System.Collections" version="4.0.10" />
      <dependency id="System.Collections.NonGeneric" version="4.0.0" />
      <dependency id="System.ComponentModel" version="4.0.0" />
      <dependency id="System.ComponentModel.Annotations" version="4.0.10" />
      <dependency id="System.ComponentModel.TypeConverter" version="4.0.0" />
      <dependency id="System.Diagnostics.Debug" version="4.0.10" />
      <dependency id="System.Dynamic.Runtime" version="4.0.10" />
      <dependency id="System.Globalization" version="4.0.10" />
      <dependency id="System.IO" version="4.0.10" />
      <dependency id="System.Linq" version="4.0.0" />
      <dependency id="System.Linq.Expressions" version="4.0.10" />
      <dependency id="System.Net.Http" version="4.0.0" />
      <dependency id="System.Net.Primitives" version="4.0.10" />
      <dependency id="System.Reflection" version="4.0.10" />
      <dependency id="System.Reflection.Extensions" version="4.0.0" />
      <dependency id="System.Reflection.TypeExtensions" version="4.0.0" />
      <dependency id="System.Resources.ResourceManager" version="4.0.0" />
      <dependency id="System.Runtime" version="4.0.20" />
      <dependency id="System.Runtime.Extensions" version="4.0.10" />
      <dependency id="System.Runtime.Serialization.Primitives" version="4.0.10" />
      <dependency id="System.Text.Encoding" version="4.0.10" />
      <dependency id="System.Text.RegularExpressions" version="4.0.10" />
      <dependency id="System.Threading" version="4.0.10" />
      <dependency id="System.Threading.Tasks" version="4.0.10" />
    </group>
  </dependencies>
</metadata>
<files>
  <file src="Neo4jClient.Full\bin\Release\Neo4jClient.dll" target="lib\net45" />
  <file src="Neo4jClient.Full\bin\Release\Neo4jClient.pdb" target="lib\net45" />
  <file src="Neo4jClient.Full\bin\Release\Neo4jClient.xml" target="lib\net45" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.dll" target="lib\portable-net46+uwp10.0+dnxcore50" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.pdb" target="lib\portable-net46+uwp10.0+dnxcore50" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.xml" target="lib\portable-net46+uwp10.0+dnxcore50" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.dll" target="lib\dotnet" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.pdb" target="lib\dotnet" />
  <file src="Neo4jClient\bin\Release\Neo4jClient.xml" target="lib\dotnet" />
</files>

【问题讨论】:

    标签: .net neo4jclient .net-core project.json


    【解决方案1】:

    在不推荐使用 DNU 工具的这一点上,我不会在 RC2 发布之前花很多时间。 dotnet CLI 和 netstandard 有望解决这个问题。

    【讨论】:

    • Ace,好的,谢谢你的时间,这让我发疯了,我会等到 RC2 再打这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2014-04-01
    • 2023-02-14
    相关资源
    最近更新 更多