Как удалить раздел зависимостей из файла 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.