Когда я упаковываю веб-проект в nuget, я хочу указать настраиваемые места распаковки для контента и поддерживать метаданные зависимостей проекта.
Учитывая следующий созданный вручную пример файла NUSPEC:
<?xml version="1.0"?>
<package>
<metadata>
<id>Web.MyApp</id>
<version>1.0</version>
<title>Web.MyApp</title>
<authors>Chris</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Nuget package containing files for Web.MyApp</description>
<releaseNotes>release notes</releaseNotes>
<copyright>Copyright Chris 2017</copyright>
<tags />
<dependencies />
</metadata>
<files>
<file src="bin\**\*.*" target="bin" />
<file src="views\**\*.*" target="views" />
<file src="content\" target="content" />
<file src="scripts\" target="scripts" />
<file src="Global.asax" target="" />
<file src="*.config" target="" />
</files>
</package>
Это позволяет мне указывать настраиваемые места распаковки для бункера, содержимого, папок спринта и т. Д., Но я хочу, чтобы метаданные зависимости проекта поддерживались автоматически. Я не хочу редактировать nupsec каждый раз, когда упоминается новая зависимость.
В качестве попытки решить эту проблему я попытался упаковать файл csproj вместо файла nuspec. Это сохранило метаданные зависимости, однако значительно усложнило определение местоположения распаковки контента. Я могу сделать следующее:
<Content Include="Content\dist\images\brand-logo.svg">
<Pack>true</Pack>
<PackagePath>Content\Content\dist</PackagePath>
</Content>
Но я не смог найти элегантного решения для папки bin. Я просто чувствую, что делаю что-то в корне неправильно.
Итак, мой вопрос: как я могу автоматически поддерживать метаданные зависимостей проекта при создании пакета nuget из вручную созданного файла nuspec?
Я использую команду pack:
..\tools\nuget\nuget.exe pack $project + ".nuspec" -IncludeReferencedProjects -
Properties Configuration=Release -Verbosity quiet -NonInteractive -
OutputDirectory "$packagedirectory" -Version $buildVersion -Symbols