Автоматически добавлять метаданные зависимости проекта в созданный вручную файл nuspec - PullRequest
0 голосов
/ 08 июня 2018

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

1 Ответ

0 голосов
/ 11 июня 2018

Автоматически добавлять метаданные зависимости проекта в созданный вручную файл nuspec

Если я правильно понимаю, я боюсь, что вы уже автоматически добавили метаданные зависимости проекта в созданный вручную файл .nuspec.Вам просто нужно пересобрать проект и заново упаковать файл .nuspec.

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

<file src="bin\**\*.*" target="bin" />

Добавьте новую ссылку на проект в проект, затем пересоберите проект, файл dll ссылочного проекта будет скопирован в папку \bin, поэтому нам просто нужно заново упаковать файл .nuspec, метаданные ссылочного проектабудет включен в новый созданный пакет.

Например, добавьте ссылочный проект Atest в проект Web.MyApp, затем пересоберите проект и повторно упакуйте файл. nuspec:

enter image description here

Если я вас неправильно понял, пожалуйста, дайте мне знать бесплатно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...