2016-08-22 2 views
0

Я получаю следующий результат при попытке запустить NuGet на моем packages.config файле:Консольная версия NuGet erroring на Package.config файл

Feeds used: 

    C:\Users\username\AppData\Local\NuGet\Cache 
    https://api.nuget.org/v3/index.json 
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 
` 
Restoring NuGet package Selenium.RC.2.53.0. 
Restoring NuGet package Selenium.Support.2.53.0. 
Restoring NuGet package NUnitTestAdapter.2.0.0. 
Restoring NuGet package NUnit.2.6.4. 
Restoring NuGet package System.Threading.dll.1.0.2856. 
Restoring NuGet package Selenium.WebDriver.2.53.0. 
Restoring NuGet package Selenium.WebDriverBackedSelenium.2.53.0. 
System.AggregateException: One or more errors occurred. ---> System.FormatException: Input string was not in a correct format. 

Это выполняется на окне Windows Server 2012, с дженкинсов на нем.

Я пытался регистрации DLL, как указано здесь:

https://docs.nuget.org/Release-Notes/Known-Issues

Эта команда:

regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VsLangproj.olb" 

выше команда не преминул, когда я запустил его, но он также сделал не исправить проблему.

Вот мой packages.config файл:

`<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="NUnit" version="2.6.4" targetFramework="net452" /> 
    <package id="NUnitTestAdapter" version="2.0.0" targetFramework="net452" /> 
    <package id="Selenium.RC" version="2.53.0" targetFramework="net452" requireReinstallation="true" /> 
    <package id="Selenium.Support" version="2.53.0" targetFramework="net452" requireReinstallation="true" /> 
    <package id="Selenium.WebDriver" version="2.53.0" targetFramework="net452" requireReinstallation="true" /> 
    <package id="Selenium.WebDriverBackedSelenium" version="2.53.0" targetFramework="net452" requireReinstallation="true" /> 
    <package id="System.Threading.dll" version="1.0.2856.0" targetFramework="net35-client" /> 
</packages>` 

важно отметить, что в настоящее время работают на Windows, Дженкинс Slave. Я установил Visual Studio на него, но на данный момент его запускают как лицензированное испытание. Я действительно НЕ хочу иметь его с лицензией, если это возможно. Кроме того, я запускаю nuget из командной строки (в шаблоне Jenkins). На данный момент я указываю прямо на сайт nuget, чтобы получить его пакеты, но в конечном итоге это будет на корпоративной нексус.

Здесь ошибка, как сообщается в Дженкинс:

Call to NuGet 
Unknown option: '-encodedCommand' 
Finished calling Nuget 

Я считаю, что заявление encodedCommand является вещь PowerShell.

Вот подробный вывод из работы с PowerShell в детальном многословие:

C:\bin\nuget.exe install F:\Jenkins\workspace\<some company>\ 
<username>\e2CsharpSeleniumGit\ParallelSelenium\packages.config -Verbosity detailed 
Feeds used: 
    C:\Users\<username>\AppData\Local\NuGet\Cache 
    https://api.nuget.org/v3/index.json 
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\ 

Restoring NuGet package Selenium.RC.2.53.0. 
Restoring NuGet package Selenium.Support.2.53.0. 
Restoring NuGet package NUnitTestAdapter.2.0.0. 
Restoring NuGet package NUnit.2.6.4. 
Restoring NuGet package System.Threading.dll.1.0.2856. 
Restoring NuGet package Selenium.WebDriver.2.53.0. 
Restoring NuGet package Selenium.WebDriverBackedSelenium.2.53.0. 
System.AggregateException: One or more errors occurred. ---> System.FormatException: Input string was not in a correct f 
ormat. 
    at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) 
    at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) 
    at System.String.Format(IFormatProvider provider, String format, Object[] args) 
    at NuGet.CommandLine.ConsoleProjectContext.Log(MessageLevel level, String message, Object[] args) 
    at NuGet.PackageManagement.PackageRestoreManager.<RestorePackageAsync>d__39.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at NuGet.PackageManagement.PackageRestoreManager.<PackageRestoreRunnerAsync>d__37.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at NuGet.PackageManagement.PackageRestoreManager.<RestoreMissingPackagesAsync>d__35.MoveNext() 
    --- End of inner exception stack trace --- 
    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 
    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) 
    at NuGet.CommandLine.Command.Execute() 
    at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args) 
---> (Inner Exception #0) System.FormatException: Input string was not in a correct format. 
    at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) 
    at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) 
    at System.String.Format(IFormatProvider provider, String format, Object[] args) 
    at NuGet.CommandLine.ConsoleProjectContext.Log(MessageLevel level, String message, Object[] args) 
    at NuGet.PackageManagement.PackageRestoreManager.<RestorePackageAsync>d__39.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at NuGet.PackageManagement.PackageRestoreManager.<PackageRestoreRunnerAsync>d__37.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at NuGet.PackageManagement.PackageRestoreManager.<RestoreMissingPackagesAsync>d__35.MoveNext()<--- 

Любая помощь очень ценится !!

+0

В соответствии с сообщением об ошибке сначала проверьте содержимое ввода, убедитесь, что входной контент правильный. И я проверил ваш файл package.config в моей Visual Studio, который может успешно восстановить пакеты. Поэтому я предлагаю вам восстановить пакеты через powsershell без Дженкинса, чтобы подтвердить, относится ли эта проблема к powsershell или Jenkins. –

+0

Я попытался в powershell, и он тоже не работает. –

+0

Я попытался добавить аргумент '-verbosity detail', когда вы запускаете восстановление nuget.Это должно привести к тому, что вызывается столбец исключения, который может обеспечить лучшую идею, где NuGet не работает. –

ответ

0

Эта ошибка может возникать из-за того, что Nuget не может получить доступ к репозиторию. Это произошло со мной, потому что у меня не было настроек прокси-сервера с помощью настроек конфигурации nuget через командную строку: https://docs.nuget.org/consume/Command-Line-Reference#config-command

+0

Я рад, что вы решили свою проблему. Пожалуйста, отметьте свой ответ, который является преимуществом для других сообществ, имеющих такую ​​же проблему. –

1

Вы можете попробовать восстановить свои пакеты с помощью powershell на Windows Server 2012 со следующими шагами, которые я выполнил успешно на основе вашего файла packages.config на моей стороне.

Сначала создайте файл сценария (.ps1), который используется для поиска файла packages.config в корне вашего решения, а затем прочитайте его, чтобы запустить команду восстановления nuget для восстановления пакетов.

#This will be the root folder of all your solutions - we will search all children of this folder 
$SOLUTIONROOT = "C:\Projects\" 
#This is where your NuGet.exe is located 
$NUGETLOCATION = "C:\Projects\NuGet\NuGet.exe" 

Function RestoreAllPackages ($BaseDirectory) 
    { 
     Write-Host "Starting Package Restore - This may take a few minutes ..." 
     $PACKAGECONFIGS = Get-ChildItem -Recurse -Force $BaseDirectory -ErrorAction SilentlyContinue | 
      Where-Object { ($_.PSIsContainer -eq $false) -and ($_.Name -eq "packages.config")} 
     ForEach($PACKAGECONFIG in $PACKAGECONFIGS) 
      { 
       Write-Host $PACKAGECONFIG.FullName 
       $NugetRestore = $NUGETLOCATION + " install " + " '" + $PACKAGECONFIG.FullName + "' -OutputDirectory '" + $PACKAGECONFIG.Directory.parent.FullName + "\packages'" 
       Write-Host $NugetRestore 
       Invoke-Expression $NugetRestore 
      } 
    } 

RestoreAllPackages $SOLUTIONROOT 
Write-Host "Press any key to continue ..." 
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") 

Во-вторых, щелкните правой кнопкой мыши этот файл, чтобы выбрать Выполнить с Powershell для выполнения сценария. Затем он начнет устанавливать пакеты на основе найденного файла packages.config.

+0

$ BaseDirectory не определен. Вы действительно хотели использовать $ SOLUTIONROOT? –

+0

Я использую $ BaseDirectory как параметр в функции RestoreAllPackages, и он отлично работает на моей стороне. –

+0

А у меня это получилось !! Благодаря! Проблема закончилась прокси-сервером. Теперь это исправлено! –