我刚刚在一个全新的Windows 10副本上拿出了一个全新的Visual Studio 2015副本。我试图创建一个简单的可移植类库(PCL),并试图添加一个简单的数据合同:
namespace ClassLibrary1
{
using System.Runtime.Serialization;
[DataContract]
public class Class1
{
}
}
编译器告诉我:
类型或命名空间名称' DataContract'找不到(你是否缺少using指令或程序集引用。当选择.NET 4.6作为目标时,似乎缺少命名空间System.Runtime.Serialization。
当为目标选择.NET Framework 4.6时,似乎没有可用的序列化。如果我回退到.NET 4.5.1,那么相同的代码编译(并在一个更复杂的项目中运行)。这里发生了什么? .NET 4.6还没有为Visual Studio中的Prime Time做好准备吗?还有其他人遇到过这个吗?
答案 0 :(得分:6)
这里遇到同样的问题,似乎解决方案是将相关的NuGet包添加到包含已移出Core的功能的项目中。具体来说,您需要Serialization Primitives,但我已经将下面的project.json文件包含在实际配置(依赖项等)方面可能更接近您想要的内容。
This site还有一个"搜索引擎"对于.NET 5软件包,这基本上就是你在这里做的。
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0",
"System.Collections": "4.0.10",
"System.Collections.Specialized": "4.0.0",
"System.Linq": "4.0.0",
"System.Linq.Expressions": "4.0.10",
"System.Linq.Queryable": "4.0.0",
"System.Net.Requests": "4.0.10",
"System.Runtime": "4.0.20",
"System.Runtime.Serialization.Primitives": "4.0.10",
"System.Runtime.Serialization.Json": "4.0.0",
"System.Runtime.Serialization.Xml": "4.0.10"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}