【发布时间】:2018-12-03 16:01:48
【问题描述】:
这基本上是我昨天发布的this question 之后的一个后果问题。长话短说,我在 Unity 应用程序中引用 System.ServiceModel 时遇到了麻烦,我通过使用 mcs.rsp file 解决了这个问题:
-r:System.ServiceModel.dll
通过将Scripting Runtime Version 和Api Compability Level 设置与.NET 4.x 对齐。但是,现在我面临另一个问题。
Unity 项目构建良好!
所以,首先让我指出我的项目运行良好,没有编译错误。所以在这方面它很好。我面临的问题是我在 Visual Studio 中遇到的烦恼并影响了我的开发体验。
Visual Studio 中的错误
基本上,当我在 Visual Studio 中打开 C# 项目时,我会收到如下类型的错误:
即使程序集 System.ServiceModel 现在已正确加载项目中,Visual Studio 仍向我显示错误,抱怨这些突出显示的类型不可用。
找不到类型或命名空间“ServiceHost”(是否缺少 using 指令或程序集引用?)
为什么?这在开发时非常烦人,我不可能在整个开发过程中出现这样的虚假错误:(
更多信息...
如果我检查生成的项目文件Assembly-CSharp.csproj,我可以看到:
<Reference Include="System.ServiceModel.Duplex">
<HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Http">
<HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.NetTcp">
<HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Primitives">
<HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Security">
<HintPath>C:/Program Files/Unity/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll</HintPath>
</Reference>
所以这让我想知道:
- 似乎 Unity 指向所需 dll 的单声道生成 dll。但是
System.ServiceModel.dll在哪里? - 我可以看到
System.ServiceModel.dll在包含Facades的文件夹中,为什么没有使用?
【问题讨论】:
-
Mono 对 WCF 的支持是“有限的”,如果你正在使用 System.ServiceModel mono-project.com/docs/about-mono/compatibility
-
@User453465436754:是的,我明白了:(但我想知道开发者如何在 Unity 中实现在线游戏。他们如何操作远程玩家之间的通信?
-
游戏使用非常高效的网络精益;与任何 SOAP 相比,快速且通常是专有的(这没有错)协议;休息;或 Protobuf 必须提供,因此不依赖
System.ServiceModel.dll -
最好的办法是查看gamedev。通常,您会发现窥视者使用 IP 数据报进行广播和更快的方面
-
对于这个特定的错误,checkout stackoverflow.com/questions/24040904/…
标签: c# visual-studio unity3d