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

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

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

        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>

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

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

Вопрос:

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


person M.Hassan    schedule 18.10.2018    source источник


Ответы (1)


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

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

person Martin Ullrich    schedule 18.10.2018
comment
вы выполняли сборку с добавленным параметром -restore или выполняли восстановление NuGet между ними? - person Martin Ullrich; 18.10.2018
comment
Спасибо, @Martin, да, он работает с -restore. пожалуйста, объясните это в своем ответе. - person M.Hassan; 18.10.2018