Предварительная версия в NuGet

Я пытаюсь создать предварительный пакет NuGet. Вот мой файл NuSpec:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>xxx.Web.Mvc</id>
    <version>1.0.3-prelrelease1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <projectUrl>https://xxx</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>xxxx.</description>
    <releaseNotes>NuGet package.</releaseNotes>
    <copyright>Copyright 2013 xxx</copyright>
    <tags>asmx xxx</tags>
    <dependencies>
  <dependency id="Microsoft.AspNet.Mvc" version="4.0.30506.0" />
  <dependency id="Microsoft.AspNet.Razor" version="2.0.30506.0" />
  <dependency id="Microsoft.AspNet.WebPages" version="2.0.30506.0"  />
  <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
  <dependency id="xxx" version="1.0.6"  />

    </dependencies>
 </metadata>
</package>

Примечание. Я использую механизм SemVer для предварительной версии.

Однако, когда я создаю свой пакет, используя:

PM> nuget pack Package.nuspec

Я получил:

nuget : Input string was not in a correct format.
At line:1 char:1
+ nuget pack Package.nuspec
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Input string wa...correct format.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Это напрямую относится к тому, что у меня есть буквенные символы в строке версии.

Я использую NuGet 2.2/VS2012.

Почему строка моей версии не распознается?

Обновить

Я уменьшил файл до:

<?xml version="1.0"?> <package >   <metadata>
    <id>xxx</id>
    <version>1.0.3-test1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>xxx</description>   </metadata> </package>

и один файл в папке ~\content:

  • ~\content\Новый журнал Document.jnt

(Впервые я увидел Windows Journal. Решил попробовать сделать простой файл. :/ )


person Program.X    schedule 16.10.2013    source источник


Ответы (2)


Починил это.

Несмотря на переустановку NuGet 2.x, похоже, у меня все еще висит v1.5.

Похоже, что среда Powershell использовала эту версию, и сообщение Package Manager Console Host Version 2.7.40911.225 не относилось к версии PowerShell, а только к хосту. Кажется очевидным, теперь я знаю.

Я вручную переделал файл и перезаписал его.

Все теперь работает.

person Program.X    schedule 18.10.2013
comment
Вот о чем был мой комментарий/предложение на voidtools.com. Что где-то висела старая версия. - person granadaCoder; 18.10.2013
comment
Увы, я работаю в запертом месте. DIR /S нашел это для меня :) - person Program.X; 22.10.2013

Итак, оба:

NuGet.exe" pack ".\MyPackage.nuspec" -Version 1.0.1-alpha

и

<?xml version="1.0" encoding="utf-8"?>
<package>
  <metadata>
    <id>MyCoolPackage</id>
    <version>1.0.1-alpha</version>
    <authors>MyAuthors</authors>
    <owners>MyOwner</owners>
    <!-- <licenseUrl>http://www.yourLicenseUrl.com</licenseUrl>  -->
    <projectUrl>http://www.yourProjectUrl</projectUrl>
    <iconUrl>http://www.yourIconUrl.com</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>BuildDate : 2013_10_16__17:13:46</description>
    <releaseNotes>My Release Notes.</releaseNotes>
    <copyright>Copyright 2013</copyright>
    <tags>MyTag1 MyTag2</tags>
    <dependencies>
      <!--
            <dependency id="SampleDependency" version="1.0" />
            -->
    </dependencies>
  </metadata>
</package>

работал на меня.

Я использую 2.7.40809.172.

Так что попробуйте:

( Номер 1 )

вынь свой

<dependencies>

(просто для прикола)

( Номер 2 )

~ попробуйте более позднюю версию

NuGet.exe

(хотя, судя по документации, все должно быть в порядке)

Я потянул

1.0.1-alpha

прямо из документации.

Начните с этого, а затем продвигайтесь к своему пользовательскому значению.

http://docs.nuget.org/docs/reference/versioning

Поэтому я взял ваш nuspec и поместил его в свой демонстрационный код.

и это сработало! (Я xml обновляю описание, к вашему сведению, поэтому небольшое несоответствие) (см. XML ниже)

Но я создал хороший файл «xxx.Web.Mvc.1.0.3-prelrelease1.nupkg».

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>xxx.Web.Mvc</id>
    <version>1.0.3-prelrelease1</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <projectUrl>https://xxx</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>BuildDate : 2013_10_17__11:29:15</description>
    <releaseNotes>NuGet package.</releaseNotes>
    <copyright>Copyright 2013 xxx</copyright>
    <tags>asmx xxx</tags>
    <dependencies>
      <dependency id="Microsoft.AspNet.Mvc" version="4.0.30506.0" />
      <dependency id="Microsoft.AspNet.Razor" version="2.0.30506.0" />
      <dependency id="Microsoft.AspNet.WebPages" version="2.0.30506.0" />
      <dependency id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
    </dependencies>
  </metadata>
</package>

Так что, возможно, это как-то связано с «содержимым», а не со спецификацией.

Итак, вы можете сделать «базовый» пакет, например:

.\Package.nuspec
.\content\
.\content\SomeImageFile.png
.\lib\
.\lib\net20\SomeDll.dll

и посмотрите, работает ли это с вашим файлом nuspec с предварительной версией?

person granadaCoder    schedule 16.10.2013
comment
Спасибо :) Я пробовал и (1), и (2), и сейчас работаю на NuGet 2.7. Я все еще получаю ту же ошибку с флагом -Version и без него. Кроме того, я просматривал ту же документацию. Что-то неладно... - person Program.X; 17.10.2013
comment
Вы пытались (временно) удалить свои записи ‹dependencies›? (для прикола) - person granadaCoder; 17.10.2013
comment
Вы пытались заменить prelrelease1 на alpha, может быть, ему не нравится эта 1 в конце prelrelease1? - person granadaCoder; 17.10.2013
comment
Да, я пытался удалить раздел зависимостей. Кроме того, попробовал другой файл nuspec без раздела зависимостей. Я также пробовал варианты пререлизного тега, включая альфа-канал и т. д., как это предлагается в документах, — с номерами и без них. Но не повезло... - person Program.X; 17.10.2013
comment
Я добавил свой ответ. - person granadaCoder; 17.10.2013
comment
Спасибо, что остаетесь с этим. Я обновил свой вопрос с очень простой файловой структурой XML ... все еще падает, как только я добавляю информацию о предварительной версии. - person Program.X; 18.10.2013
comment
У меня нет идей. Одна последняя радуйся Марии. Получите этот инструмент: voidtools.com (который полезен во многих случаях). Выполните поиск NuGet.exe и переименуйте или удалите все их, кроме самого последнего.........просто чтобы убедиться.........Это странный чувак. - person granadaCoder; 18.10.2013
comment
И вы можете попробовать другую машину ........, так как вы можете скопировать / вставить небольшой каталог ..... и запустить командную строку nuget.exe. Еще раз, радуйся, что это твоя машина............. - person granadaCoder; 18.10.2013
comment
Попробовал другую машину, работает нормально! Раздражающий. Просто nuget pack Package.nuspec, ничего особенного. Только что попытался снова загрузить инструмент командной строки и запустить его в собственной оболочке, и все равно не повезло. - person Program.X; 18.10.2013