缺少对程序集的引用
Missing Reference to Assembly
我正在尝试创建套接字服务器,但我遇到了不确定如何解决的问题。
这是我在 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
我收到以下错误:
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
您无法将 net45
导入 netcoreapp1.0
,那是行不通的。当您指定 imports
时,您基本上是说:"I know those packages claim they are not compatible, but I promise they are".
包 vtortola.WebSocketListener
仅支持 net45
,因此您将无法在 .Net Core 上使用它(尽管您仍然可以将它与 dotnet CLI 一起使用,如果您更改了框架至 net451
).
但是好像有一个测试版的vtortola.WebSocketListener.dnx
包,它支持dnxcore50
(.Net Core的先前预发布版本)。导入它(与 Microsoft.Tpl.Dataflow
依赖项的 portable-net45+win8
一起)应该可以工作。 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.
请将 net451
作为数组元素导入 "import" 部分并插入以下附录 Microsoft.NETCore.Portable.Compatibility: "1.0.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();
}
}
当我运行以下命令时:
master@ubuntu:~/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
您无法将 net45
导入 netcoreapp1.0
,那是行不通的。当您指定 imports
时,您基本上是说:"I know those packages claim they are not compatible, but I promise they are".
包 vtortola.WebSocketListener
仅支持 net45
,因此您将无法在 .Net Core 上使用它(尽管您仍然可以将它与 dotnet CLI 一起使用,如果您更改了框架至 net451
).
但是好像有一个测试版的vtortola.WebSocketListener.dnx
包,它支持dnxcore50
(.Net Core的先前预发布版本)。导入它(与 Microsoft.Tpl.Dataflow
依赖项的 portable-net45+win8
一起)应该可以工作。 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.
请将 net451
作为数组元素导入 "import" 部分并插入以下附录 Microsoft.NETCore.Portable.Compatibility: "1.0.1-*