Мне нужно сделать генерацию схемы JSON в шаблоне T4 и найти новый класс Schema Newtonsoft более чем подходящим для этой цели (в рамках консольного приложения, проверено), однако я не могу похоже, заставляют его играть в мяч вместе с остальными, поскольку экземпляр Newtonsoft всегда возвращает null.T4 Templating с сторонними сборками
T4 Объявление:
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="Newtonsoft.Json.dll" #>
<#@ assembly name="Newtonsoft.Json.Schema.dll" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
Ссылки сборки указывают на DLL-файлов, и у меня есть папка взгляд окна установить в настройках проекта для проекта, снимок экрана ниже:
Попытка сделать что-то вроде ниже, не удается, поскольку Newtonsoft не найден:
var schema = Newtonsoft.Json .Schema.JSchema.Parse (jsoncontent);
Ошибка выброшен является: файл метаданных «Newtonsoft.Json.Schema.dll» не может быть найден
Привет, Мэтт, я последовал за этим тем же самым обсуждением, и это не сработало для меня. В итоге это была версия от NuGet из Newtonsoft.Json.Schema, была внутренне скомпилирована против v6 + из Newtonsoft.Json и я получили v7 от NuGet. Странно, что обычное консольное приложение не вызвало это исключение, только когда я захотел использовать его в T4, было ли оно поднято, но не через обычную обработку исключений, пришлось действительно разобраться, чтобы найти эту ошибку. Получил последнюю версию .Schema от GitHub и скомпилирован с версией 7, и она сработала. Спасибо – JadedEric
Я бы поставил то, что вы нашли в качестве ответа, так как другие люди могут столкнуться с этим и, возможно, не найдут ваше решение в комментарии. –
Хорошая точка, спасибо :) – JadedEric