Когда я собираю 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