Я определил и создал пакет только для содержимого для обмена схемами JSON между разными проектами. Я упаковал его, используя nuget.exe
, и смог успешно добавить его в проект библиотеки .Net Framework 4.6.
Но когда я попытался добавить его в проект библиотеки DotNet Core 3.1 (тесты NUnit), произошла следующая ошибка:
NU1212 Invalid project-package combination for <package name>. DotnetToolReference project style can only contain references of the DotnetTool type
Документация по поддержке Nuget (тип пакета, файлы содержимого) не содержит никаких ограничений ( помимо предположения, что они совместимы) в пакетах только для содержимого. Вопрос в том, как создать пакет Nuget, совместимый только с содержимым библиотеки DotNet Core 3.1?
Я попытался отключить все источники данных, кроме локального, как было предложено в этом вопросе, но это не имело никакого значения.
Вот содержимое .nuspec
файла
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Package.JsonSchemas</id>
<version>0.0.1</version>
<packageTypes>
<packageType name="Dependency" />
</packageTypes>
<authors>me</authors>
<owners>me</owners>
<releaseNotes>Fill in later</releaseNotes>
<description>Set of JSON schemas.</description>
<tags>json, json-schema, tdv</tags>
<contentFiles>
<files include="JsonSchemas\*.json" buildAction="Content" copyToOutput="true" flatten="false" />
</contentFiles>
</metadata>
<files>
<file src="JsonSchemas\*.*" target="content\JsonSchemas" />
</files>
</package>
Пример схемы:
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$defs": {
"ArrayItem": {
"type": "object"
}
},
"title": "dataset object",
"type": "object",
"properties": {
"Data": {
"type": "array",
"items": {
"$ref": "#/$defs/ArrayItem"
},
"default": []
}
},
"required": [ "Data" ]
}
<files><file src="JsonSchemas\*.*" target="content\JsonSchemas" /> <file src="JsonSchemas\*.*" target="contentFiles\any\any" /></files>
- person Mr Qian   schedule 07.08.2020