2016-05-31 92 views
1

我想创建一个套接字服务器,并且遇到了不确定如何解决的问题。缺少对程序集的引用

下面是我在用我的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(); 

    } 

} 

当我运行下面的命令:

[email protected]:~/Documents/Chat$ dotnet run 

我收到以下错误:

Project Chat (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling Chat for .NETCoreApp,Version=v1.0
/usr/share/dotnet/dotnet compile-csc @/home/master/Documents/Chat/obj/Debug/netcoreapp1.0/dotnet-compile.rsp returned Exit Code 1
/home/master/Documents/Chat/Server.cs(8,26): error CS0012: The type 'IPEndPoint' is defined in an assembly that is not referenced. You must add a reference to assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
/home/master/Documents/Chat/Server.cs(10,26): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
/home/master/Documents/Chat/Server.cs(11,16): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Compilation failed.
0 Warning(s)
3 Error(s)

Time elapsed 00:00:02.6995789

+0

哪里vtortola.WebSocketListener从组装。我的猜测:从.NET Framework项目;)。 – Thomas

+0

它来自NuGen –

回答

6

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

vtortola.WebSocketListener只支持net45,所以你将不能够使用它的.Net核心(虽然你仍然可以使用DOTNET CLI中使用它,如果你改变了你的框架,net451)。

但似乎有一个vtortola.WebSocketListener.dnx包的测试版,它支持dnxcore50(以前的预发布版本的.Net Core)。导入(与portable-net45+win8Microsoft.Tpl.Dataflow依赖项)应该工作。然后project.json看起来就像这样:

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0-rc2-3002702" 
    }, 
    "vtortola.WebSocketListener.dnx": "2.2.0.1-beta-00002" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "dnxcore50", "portable-net45+win8" ] 
    } 
    } 
} 

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

+0

太棒了!我能够无误地构建项目! –

-1

请导入net451作为数组元素为“进口”一节,并插入以下ependency Microsoft.NETCore.Portable.Compatibility: "1.0.1-*