2015-02-16 3 views
16

Ich versuche, Ninject in einem meiner Projekte mit genauen Version und Projektnamen zu installieren. Ich verwende ein lokal gehostetes Paket-Repository. Ich bin vor während der Paketinstallation folgendes Problem:Eingabe String war nicht in einem korrekten Format Ausnahme in NuGet

PM> Install-Package Ninject -version 3.2.2.0 -project My.Project.Name 
Installing 'Ninject 3.2.2.0'. 
You are downloading Ninject from Ninject Project Contributors, the license agreement to which is available at https://github.com/ninject/ninject/raw/master/LICENSE.txt. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. 
Successfully installed 'Ninject 3.2.2.0'. 
Adding 'Ninject 3.2.2.0' to My.Project.Name. 
Install failed. Rolling back... 
Install-Package : Input string was not in a correct format. 
At line:1 char:16 
+ Install-Package <<<< Ninject -version 3.2.2.0 -project My.Project.Name 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], FormatException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

PM> $error[0].Exception.StackTrace 
    at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) 
    at System.String.Format(IFormatProvider provider, String format, Object[] args) 
    at NuGet.PowerShell.Commands.NuGetBaseCommand.Log(MessageLevel level, String message, Object[] args) 
    at NuGet.VisualStudio.VsProjectSystem.RemoveReference(String name) 
    at NuGet.ProjectManager.RemovePackageReferenceFromProject(IPackage package) 
    at NuGet.ProjectManager.Execute(PackageOperation operation) 
    at NuGet.ProjectManager.Execute(IPackage package, IPackageOperationResolver resolver) 
    at NuGet.ProjectManager.RemovePackageReference(IPackage package, Boolean forceRemove, Boolean removeDependencies) 
    at NuGet.VisualStudio.VsPackageManager.RollbackProjectActions(IProjectManager projectManager, IEnumerable`1 packagesAdded, IEnumerable`1 packagesRemoved) 
    at NuGet.VisualStudio.VsPackageManager.RunProjectAction(IProjectManager projectManager, Action action) 
    at NuGet.VisualStudio.VsPackageManager.AddPackageReference(IProjectManager projectManager, IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersio 
ns) 
    at NuGet.VisualStudio.VsPackageManager.<>c__DisplayClass8.<InstallPackage>b__4() 
    at NuGet.VisualStudio.VsPackageManager.RunSolutionAction(Action action) 
    at NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager, String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean a 
llowPrereleaseVersions, Boolean skipAssemblyReferences, ILogger logger) 
    at NuGet.VisualStudio.VsPackageManager.InstallPackage(IProjectManager projectManager, String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean a 
llowPrereleaseVersions, ILogger logger) 
    at NuGet.PowerShell.Commands.InstallPackageCommand.InstallPackage(IVsPackageManager packageManager) 
    at NuGet.PowerShell.Commands.InstallPackageCommand.ProcessRecordCore() 
    at NuGet.PowerShell.Commands.NuGetBaseCommand.ProcessRecord() 
PM> 

Danach:

  • der Datensatz im Projektverzeichnis
  • die packages.config zugegeben wird in den Paketen Verzeichnis verpackt hinzugefügt Lösungsverzeichnis
  • Bibliothek wird nicht referenziert
  • abhängige Bibliotheken werden nicht verarbeitet.

Wie kann ich es reparieren? Was kann dieses Problem verursachen?

Antwort

55

Ich weiß nicht genau, was das Problem verursacht, aber wir waren in der Lage, es zu lösen, indem Sie den folgenden Befehl mit Administratorrechten ausgeführt wird:

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

jedoch sicher, dass tatsächlich die Befehlszeile als Administrator starten (nicht nur runas), sonst wird Ihnen eine Erfolg Nachricht angezeigt, obwohl die Registrierung tatsächlich fehlgeschlagen ist.

Danach Neustart Visual Studio und es sollte funktionieren (zumindest hat es für mich getan, getestet auf mehreren Maschinen mit VS 2010/2012/2013).

+0

Eigentlich hat es bei mir funktioniert, ohne VS neu zu starten. Wie auch immer - vielen Dank! Ich bastelte seit dem Morgen ohne Ergebnis. Ich danke dir sehr! – Landeeyo

+0

Arbeitete für mich, ohne auch VS neu zu starten. Große Nutzung der Stack-Spur auch! –

+0

Siehe auch https://nuget.codeplex.com/workitem/3609 –

0

Ich habe versucht, es funktioniert gut wie erwartet.

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

Ich fand heraus, dass die Registrierung (mit Regsvr als Administrator) nicht notwendig ist (Win7 64-Bit, MS Visual Studio Community 2013). Ich habe dieselbe Fehlermeldung erhalten wie das OP, aber tatsächlich wurde das Paket in den Unterordner "packages" meiner Lösung kopiert. Alles, was ich tun musste, war mit der rechten Maustaste auf die Lösung, "Referenzen hinzufügen", "Durchsuchen" und finden Sie die entsprechenden DLL-Dateien.

Verwandte Themen