Запретить добавление файлов содержимого при восстановлении Nuget
Вместо папки content
следует указывать папку tools .
Итак, ваш файл .nupsec должен быть:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>VCRedistributable</id>
<version>$version$</version>
<title>VCRedistributable</title>
<authors>--</authors>
<owners>--</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>InstallVCRedistributable assemblies</description>
</metadata>
<files>
<file src="VC\x86\*.*" target="tools\x86" />
<file src="VC\x64\*.*" target="tools\x64" />
</files>
</package>
Это потому, что каталог содержимого является рабочим каталогом, основанным на соглашениях, содержимое которого копируется в корневой каталог проекта:
Conventionрабочий каталог на основе :
Кроме того, если вы добавляете в пакет nuget внешние файлы .exe
, добавлять их не нужнометка contentFiles
, эта метка используется для файла содержимого для packagereference
.
<contentFiles>
<files include="**" exclude="**" buildAction="None" copyToOutput="false"
/>
</contentFiles>
Если вы заинтересованы, вы можете проверить этот документ для более подробной информации.
Обновление:
Это хорошее соглашение для создания нашей собственной структуры папок, отличной от определенной NuGet, поскольку на основании приведенного выше описания папки инструментов кажется, что они будут доступны через диспетчер пакетов.
Конечно,Вы можете использовать собственную структуру папок, отличную от определенной в NuGet.Но вы должны заметить, что для этого будет предел. Вы НЕ МОЖЕТЕ просто включить свою собственную структуру папок, вам также нужно добавить определенную структуру папок NuGet в .nuspec
, в противном случае nuget не удастся установить с такой ошибкой, как:
Не удалось установить пакет MyCustomPackage 1.0.0.Вы пытаетесь установить этот пакет в проект, который нацелен на '.NETFramework, Version = v4.6.1', но пакет не содержит никаких ссылок на сборки или файлов содержимого, совместимых с этой платформой.
Поскольку nuget не обнаружил, что вы добавили ссылки на сборки или файлы содержимого в проект.
Надеюсь, это поможет.