【发布时间】:2017-02-12 17:41:17
【问题描述】:
我的解决方案中有 2 个项目。首先是面向 .NET Standard 1.3 的可移植库。这个库依赖于 Json.NET。它的 project.json 如下所示:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1"
},
"frameworks": {
"netstandard1.3": {}
}
}
库只包含这个简单的类:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestLibrary
{
public class TestClass
{
public static string Foo() {
return JsonConvert.SerializeObject(42);
}
}
}
第二个项目是针对完整 .NET 4.6.1 框架的控制台应用程序。这个控制台应用程序引用了上面提到的库。代码如下:
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var x = TestLibrary.TestClass.Foo();
}
}
}
我能够构建和运行它,但调用 TestLibrary.TestClass.Foo() 会导致以下异常:
无法加载文件或程序集“Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。系统找不到指定的文件。":"Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"
我的 bin 文件夹中没有 Newtonsoft.Json.dll。
我已安装 Visual Studio 2015 Update 3 (KB3165756)(14.0.25431.01,于 2016 年 9 月 14 日发布)以及 .NET Core 1.0.1 VS 2015 Tooling Preview 2。
花了太多时间在谷歌上搜索后,我不确定 a) 我做错了什么 b) 工具还不支持这种情况 c) 我的 Visual Studio 安装不知何故坏了。
【问题讨论】:
-
ClassLibrary 和 Console 应用程序都是 .NET Core 应用程序吗?我根据您的描述创建了 .NET Core ClassLibrary 和 Console 应用程序,但没有收到任何错误消息。如果可能的话,我建议你提供一个示例项目,我会在我这边运行你的应用程序,以确认你的项目或 VS 安装是否有问题。
-
不,它们不是 .NET Core。库是针对 .NET Standard 1.3 的 PCL,控制台应用程序针对的是完整的 .NET 4.6.1 框架。您可以找到示例项目here(目前无法使用 GitHub)。
标签: .net visual-studio-2015 nuget .net-standard