【问题标题】:create a nuget to share between linux and windows创建一个 nuget 在 linux 和 windows 之间共享
【发布时间】:2017-02-16 08:02:15
【问题描述】:

我有一个使用 .net 4.6.1 在 Windows 上运行的 asp.net 表单应用程序 和一个使用 .netcore 1.1 的 linux 应用程序

我想制作一个可以在两个应用程序之间共享的 nuget。

我创建了一个 .net 核心库,它在我的 linux 应用程序中运行良好 这是它的project.jso

{
  "version": "0.1",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "Newtonsoft.Json": "9.0.1",
    "StackExchange.Redis": "1.2.0"
  },

  "frameworks": {
    "netstandard1.4": {
      "imports": "netcoreapp1.0"
    }
  }
}

我可以将我的 nuget 包添加到 Windows 应用程序并构建它而没有错误,但是当我想运行该应用程序时,我得到了所有错误,例如:

无法加载文件或程序集“System.Diagnostics.DiagnosticSource, 版本=4.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51

我使用的是 .net 4.6.1,所以我认为是 .net 核心在唠叨

我可以签入here 并确认它是一个 .net 核心库。

我还在生产服务器中设置了 .net 库。但我仍然遇到同样的错误。

我尝试了所有我认为合乎逻辑的可能组合和版本。也不知道怎么解决。

【问题讨论】:

  • 你不应该在你的框架声明中导入netcoreapp1.0。你也有两次相同的条目。 netstandard1.x 的导入应该是 portable-net451+win81 或类似的东西(portable-net45+win8 或 ``portable-net46+uap` 或任何您希望拥有的最低 API - 但请记住,portable-net45+win8 是您最低的 PCL 配置文件可以与 .NET Core 一起使用)

标签: c# asp.net .net linux asp.net-core


【解决方案1】:

我不知道你为什么说你在使用net 4.6.1。因为您使用netstandard1.4 作为框架,所以查看您的project.json 文件。

试试下面的project.json文件:

"buildOptions": {
  "debugType": "portable",
  "emitEntryPoint": true
},
"dependencies": {
  "NETStandard.Library": "1.6.0",
  "Newtonsoft.Json": "9.0.1",
  "StackExchange.Redis": "1.2.0"
},
"frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      }
    }
  }

确保生产服务器已安装运行时和Microsoft.NETCore.App-1.1.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2013-07-16
    • 2018-06-04
    相关资源
    最近更新 更多