缺少对装配的参考

时间:2016-05-31 20:44:49

标签: c# .net-core

我正在尝试创建套接字服务器,我遇到的问题我不确定如何解决。

以下是我为project.json使用的内容:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    },
    "vtortola.WebSocketListener": "2.2.0.2"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": "net45"
    }
  }
}

然后我有了这个基本脚本Server.cs

using System.Net;
using vtortola.WebSockets;

public class Server {

    public static void Main(string[] args){

        var server = new WebSocketListener(new IPEndPoint(IPAddress.Any, 8006));
        var rfc = new vtortola.WebSockets.Rfc6455.WebSocketFactoryRfc6455(server);
        server.Standards.RegisterStandard(rfc);
        server.Start();

    }

}

当我运行以下命令时:

master@ubuntu:~/Documents/Chat$ dotnet run

我收到以下错误:

  

将编译项目聊天(.NETCoreApp,版本= v1.0),因为缺少预期的输出       编译.NETCoreApp的聊天,版本= v1.0
      / usr / share / dotnet / dotnet compile-csc @ / home / master / Documents / Chat / obj / Debug / netcoreapp1.0 / dotnet-compile.rsp返回退出代码1
      /home/master/Documents/Chat/Server.cs(8,26):错误CS0012:类型' IPEndPoint'在未引用的程序集中定义。您必须添加对程序集的引用,System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。
      /home/master/Documents/Chat/Server.cs(10,26):错误CS0012:类型'对象'在未引用的程序集中定义。您必须添加对程序集&mcorlib的引用,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。
      /home/master/Documents/Chat/Server.cs(11,16):错误CS0012:类型'对象'在未引用的程序集中定义。您必须添加对程序集&mcorlib的引用,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。

     

编译失败。
          0警告
          3错误

     

时间00:00:02.6995789

2 个答案:

答案 0 :(得分:6)

您无法将net45导入netcoreapp1.0,但这不起作用。当您指定imports时,您基本上会说:“我知道这些软件包声称它们不兼容,但我保证它们是”。

vtortola.WebSocketListener仅支持net45,因此您将无法在.Net Core上使用它(尽管如果您将框架更改为{仍然可以在dotnet CLI中使用它) {1}})。

但似乎有一个net451包的测试版,它支持vtortola.WebSocketListener.dnx(之前发布的.Net Core版本)。导入(以及dnxcore50依赖项的portable-net45+win8)应该有效。 project.json将如下所示:

Microsoft.Tpl.Dataflow

It seems vtortola.WebSocketListener will also support RC2 directly in the future.

答案 1 :(得分:-1)

请将net451作为数组元素导入“导入”部分并插入以下依赖关系Microsoft.NETCore.Portable.Compatibility: "1.0.1-*