命名空间“System.Security.Cryptography”

时间:2017-04-06 08:05:10

标签: unity3d unityscript

我必须阅读带有

的签名xml
Using System.Security;
System.Security.Cryptography.Xml.SignedXml signedXml = new System.Security.Cryptography.Xml.SignedXml(lic);

第一个Unity / VS抱怨

  

VS>错误11类型或命名空间名称Xml' does not exist in the namespace System.Security.Cryptography'。你错过了吗?   装配参考?

所以我在Visual Studio中添加了对System.Security的引用(C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Security.dll)......但是Unity一直在抱怨

  

错误CS0234:类型或命名空间名称Xml' does not exist in the namespace System.Security.Cryptography'。你错过了一个集会吗?   参考

然后我尝试直接复制资产文件夹中的'System.Security.dll'但仍然是相同的消息!

我做错了什么?有什么必须做的? 非常感谢!

1 个答案:

答案 0 :(得分:2)

大多数System.Security.Cryptography命名空间都从Unity的默认.Net 2.0 Subset API中排除。最有可能.Xml也被删除。请执行以下操作之一:

    在Unity中
  1. 单击Ctrl / Cmd + Shift + B打开构建菜单,单击player settings。在检查器中查找默认设置为API Compatability Level的{​​{1}}。将其更改为.Net 2.0 Subset,其中包括先前剥离的其他类/命名空间。
  2. 如果错误仍然存​​在,请确保您复制到Unity的.dll来自.net 2.0框架。 Unity无法导入高于.net 2.0
  3. 的目标框架库

    这是统一的.Net 2.0 API中排除的内容: https://docs.unity3d.com/412/Documentation/ScriptReference/MonoCompatibility.html

    抱歉,我找不到此文档的当前版本

    修改

    正如@ user2737085建议的那样 - 您还必须将Subset文件添加到mcs.rsp文件夹中。 Assets应该是包含以下行的文本文件:

    mcs.rsp