NuGet中的输入字符串格式不正确

时间:2015-02-16 12:50:33

标签: visual-studio visual-studio-2012 nuget

我正在尝试在我的一个项目中安装Ninject,并提供确切的版本和项目名称。我正在使用本地托管的包存储库。我在包安装过程中面临以下问题:

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> 

之后:

  • 将记录添加到项目目录中的packages.config
  • 打包将添加到解决方案目录
  • 中的packages目录中
  • 未引用库
  • 不依赖图书馆。

我该如何修补?什么可能导致这个问题?

3 个答案:

答案 0 :(得分:58)

我不确切知道造成问题的原因,但我们可以通过使用管理员凭据运行以下命令来解决问题:

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

但是,请确保以管理员身份启动命令行(而不仅仅是runas),否则您将会看到成功消息,尽管注册实际上已失败。< / p>

之后重新启动Visual Studio,它应该可以工作(至少它对我有用,在VS 2010/2013/2013的几台机器上进行了测试)。

答案 1 :(得分:0)

我试过,它正如预期的那样正常工作。

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

答案 2 :(得分:0)

我发现注册(使用regsvr作为管理员)不是必需的(Win7 64位,MS Visual Studio社区2013)。我得到了与OP相同的错误消息,但实际上包被复制到&#34;包&#34;我的解决方案的子文件夹。我需要做的就是右键点击解决方案,&#34;添加引用&#34;,&#34;浏览&#34;并找到相应的dll文件。