Nuget 3 - Octopack - неверная целевая ошибка
Я злюсь, пытаясь решить это. Моя среда:
- VS2015
- Расширение Nuget 3.3.0.167
- Пакет Octopack 3.0.45.
Когда я запускаю следующую команду ниже, пакет генерируется правильно:
v4.0.30319\msbuild PackagingTest.sln /t:Rebuild
/p:Configuration=Release /p:RunOctopack=true
/p:OctoPackPackageVersion=1.1.1/p:OctoPackPublishPAckageToFileShare=C:\Packages
Но когда я пытаюсь установить пакет во втором проекте, я получаю следующее исключение:
Не удалось установить пакет "PackagedLibrary 1.1.1". Вы пытаетесь установить этот пакет в проект, который нацелен на ".NETFramework,Version=v4.5", но пакет не содержит никаких ссылок на сборки или файлов содержимого, совместимых с этой платформой. Для получения дополнительной информации свяжитесь с автором пакета.
- Оба ориентированы на одну и ту же структуру (4.5).
- Если вы извлекаете библиотеку из пакета и ссылаетесь на нее, в этом нет ничего странного.
- Если вы добавите пакет от VS2013, он работает отлично.
Я заметил, что версия Octopack (загруженная с конечной точки v3 https://api.nuget.org/v3/index.json) содержит Nuget.exe v.2.8 вместо версии 3.xxx, которая должна. Поэтому я попытался вручную заменить файл nuget.exe для создания пакета без изменений.
Какие-нибудь подсказки того, что я пропускаю?
заранее спасибо
1 ответ
Насколько мне известно, использование Octopack создаст пакет NuGet (.nupkg), который можно использовать только для OctopusDeploy. Он не генерирует пакет NuGet, который может использоваться NuGet в Visual Studio.
В то время как Octopus Deploy использует файлы.nupkg, структура файлов в файле.nupkg различна. Чтобы установить.nupkg в проект.NET 4.5, ему понадобится сборка в каталоге lib\net45. Если вы загляните внутрь своего.nupkg, скорее всего, у него не будет этого каталога, но, вероятно, сборки будут находиться только в корне.nupkg.
Если вы хотите использовать файл.nupkg с NuGet, вы должны использовать NuGet.exe для создания файла.nupkg.
Вероятно, причина в том, что работает с Visual Studio 2013, заключается в том, что он рассматривает его как пакет NuGet уровня решения, который в настоящее время не поддерживается в Visual Studio 2015.