Создание пакета Nuget без его зависимостей для добавления в качестве ссылок
Поскольку вы не хотите, чтобы пользователи Nuget видели другие библиотеки DLL, вы не можете установить этот файл библиотеки DLL какзависимости, которые будут добавлены в список ссылок по умолчанию.
Чтобы решить эту проблему, нам нужно добавить файл dll в другую папку в файле .nuspec
и добавить функцию для копирования этого файла dll в папку bin, когда мы добавим этот пакет nuget в проект.Вы можете выполнить следующие шаги:
Добавить файл xx.targets
в папку вашего проекта (тот, который вы использовали для создания пакета nuget), убедитесь, что имя целевого файла совпадаетимя в качестве идентификатора пакета (TestDemo
- это мой идентификатор пакета, поэтому имя .targets
равно TestDemo.targets
).
Добавьте приведенный ниже код в целевой файл:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)*.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
Примечание. Путь «$ (MSBuildThisFileDirectory)» должен быть относительным путем, если вы не знакомы с ним, вы можете использовать абсолютный путь.
В файле nuspec добавьте требуемый файл в каталог Build вместе с файлом целей.
<files>
<file src="<ThoseDllsPath>\*.dll" target="Build\" />
<file src="TestDemo.targets" target="Build\" />
<file src="bin\Debug\TestDemo.dll" target="lib\462" />
</files>
Упакуйте этот пакет, затем добавьте его в другой проект втест, он работает нормально.
Надеюсь, что этопомогает.