Octopack не собирается, когда я добавляю зависимости

Octopack не может собрать следующий xml

<?xml version="1.0"?>
<package >
  <metadata>
    <id>WebCrawlerMVC</id>
    <version>1.0.0.0</version>
    <title>Web Crawler</title>
    <authors>lardern</authors>
    <owners>Nostrum Group</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>packaging webcrawler mvc</description>
    <releaseNotes>no release notes</releaseNotes>
    <copyright>Copyright 2013</copyright>
  </metadata>
   <dependencies>
        <dependency id="Ninject" version="3.0.1.10" />
        <dependency id="HtmlAgilityPackHelpers" />
    </dependencies>
    <files src="C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\packages\Ninject.3.0.1.10\lib\net40\Ninject.dll"/>
    <files src="C:\Users\lardern\Documents\Visual Studio 2010\Projects\HtmlAgilityPack\HtmlAgilityPack\HtmlAgilityPackHelpers\bin\Release\HtmlAgilityPackHelpers.dll" />
</package>

ошибка, которую я получаю

Ошибка 2 Команда "C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC..\packages\OctoPack.1.0.111\tools\NuGet.exe" упаковывает "C:\Users\lardern\ Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC\WebCrawlerMVC.nuspec" -OutputDirectory "bin" -basePath "C:\Users\lardern\Documents\Visual Studio 2010\Projects\WebCrawlerMVC\WebCrawlerMVC" -Version "1.0.0.0" -NoPackageAnalysis» завершился с кодом 1. WebCrawlerMVC

Я не совсем уверен, что это значит, если у меня нет добавленных зависимостей, он отлично встраивается в выпуск, иначе он возвращается с этой ошибкой.

Редактировать: я отредактировал код выше, спасибо, что заметил ошибку, Адам, но ошибка все еще возникает. Также вынул каждую зависимость, чтобы увидеть, вызывала ли она ошибку, оба раза не удалось.


person Lewis    schedule 24.01.2013    source источник


Ответы (3)


Если вы просмотрите свой полный журнал сборки, вы сможете найти больше информации, чем просто строка ошибки выше — NuGet.exe, вероятно, жалуется на них.

Однако пакеты Octopus в любом случае не должны включать зависимости.

Еще одна функция NuGet, которая плохо переносится на Octopus, — это зависимости. NuGet имеет удобную функцию для отслеживания зависимостей между пакетами. Это используется, когда, например, такой пакет, как NHibernate, зависит от пакета, такого как log4net. NuGet установит NHibernate, разрешит зависимость и установит log4net. Важно отметить, что NuGet установит их в две отдельные папки на диске:

packages/NHibernate.x.y.z
packages/log4net.x.y.z

Хотя это имеет смысл для библиотек, на которые ссылается Visual Studio, это не имеет смысла в Octopus по тем же причинам, что и выше. Например, если ваш пакет приложений Octopus зависит от log4net, на диске у вас будет:

packages/YourApp.x.y.z  
packages/log4net.x.y.z

Во время выполнения исполняемые файлы или сайт ASP.NET в YourApp попытаются вызвать метод в log4net и потерпят неудачу, поскольку DLL не может быть найдена. Хотя теоретически эту проблему можно решить с помощью проверки путей в файле конфигурации, на практике лучше избегать этого подхода.

По этой причине пакеты Octopus NuGet не могут иметь зависимостей.

Вместо этого любые библиотеки, которые вам нужно использовать, должны быть объединены внутри вашего пакета в стандартной папке двоичных файлов.

person Paul Stovell    schedule 24.01.2013

Похоже, что > отсутствует в конце предпоследней строки. 8)

Редактировать: хорошо, может быть, это было не так. Но я нашел эту ссылку, описывающую проблему с пробелом в пути.

Может это актуально?

person Adam K Dean    schedule 24.01.2013

https://docs.nuget.org/create/nuspec-reference#specifying-dependencies

Элемент зависимостей является дочерним элементом элемента метаданных.

Я полагаю, именно поэтому у вас возникла ошибка при запуске пакета nuget

person Evren Kuzucuoglu    schedule 20.07.2015