У меня есть 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, версия = 9.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из ее зависимостей. Системе не удается найти указанный файл.":"Newtonsoft.Json, версия=9.0.0.0, культура=нейтральная, PublicKeyToken=30ad4fe6b2a6aeed"
В моей папке bin нет Newtonsoft.Json.dll
.
У меня установлено Visual Studio 2015 Update 3 (KB3165756) (14.0.25431.01, выпущено 14.09.2016), а также .NET Core 1.0.1 VS 2015 Tooling Preview 2.
Потратив слишком много времени на гугление, я не уверен, что а) я делаю что-то не так б) инструменты еще не поддерживают этот сценарий в) моя установка Visual Studio каким-то образом не работает.
РЕДАКТИРОВАТЬ: Вот полное решение для воспроизведения.