Как удалить раздел зависимостей из файла nuspec в сгенерированном пакете nuget с помощью msbuild 15

Я использую командную строку msbuild v15.8.168.64424 (против 2017.8) для создания пакета nuget для консольного приложения. Я использовал ILMerge для объединения всех зависимостей, поэтому я получаю только один исполняемый файл без зависимостей.

При запуске команды

        msbuild project1.csproj /t:build /p:configuration=release /p:IsTool=true

Я получаю пакет nuget, но при его проверке обнаруживаю dependencies section,

     <dependencies>
           <group targetFramework=".NETFramework4.5">
            <dependency id="lib1" version="1.3.0" exclude="Build,Analyzers" />
            <dependency id="lib2" version="2.3.0" exclude="Build,Analyzers" />              
          </group>
        </dependencies>

Я хочу, чтобы раздел `зависимости был пустым (потому что я объединил все зависимости).

Я могу использовать файл nuspec для генерации пакета без раздела зависимостей, но недостатком является ручная передача всех метаданных, включенных в csproj. Я не нашел свойства для зависимостей в целевых входах пакета

Вопрос:

Как удалить раздел зависимостей из файла nuspec, который входит в сгенерированный пакет nuget?

1 ответ

Решение

Вы можете установить метаданные PrivateAssets="All" на упаковке или ссылках проекта (<PackageReference> / <ProjectReference>) в файле csproj, чтобы исключить их как зависимости NuGet.

Обратите внимание, что это изменение требует восстановления, поэтому выполните восстановление NuGet между ними или добавьте -restore на вызов MSBuild.

Другие вопросы по тегам