Windows刷新后,Nuget无法正常工作(Windows 10 / VS2015社区)

时间:2015-09-12 16:04:38

标签: visual-studio nuget visual-studio-2015

由于Surface Pro 3中存在一些网卡问题,我在几天前(大约一周)将我的Windows 10安装刷新到了PC的状态。据推测,此选项仅更改设置和安装(注册密钥,已安装的软件等)

之后,我无法让Nuget在Visual Studio上正常工作。以下是症状:如果在依赖项解析和添加文件之后添加包(例如MVVMLight),这就是我在控制台中看到的:

Executing script file 'C:\Users\Erick\Documents\Projects\test\packages\MvvmLight.5.2.0.0\tools\install.ps1'...
null : The term 'null' is not recognized as the name of a cmdlet, function, script file, or operable program. Check 
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\Erick\Documents\Projects\test\packages\MvvmLight.5.2.0.0\tools\install.ps1:160 char:15
+     $resources = null
+                  ~~~~
    + CategoryInfo          : ObjectNotFound: (null:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Locator

#text
-----
True 


Successfully installed 'MvvmLight 5.2.0' to Cierre de Eventos
========== Finished ==========

项目中的packages.config文件已正确更新:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="CommonServiceLocator" version="1.3" targetFramework="net46" />
  <package id="MvvmLight" version="5.2.0.0" targetFramework="net46" />
  <package id="MvvmLightLibs" version="5.2.0.0" targetFramework="net46" />
</packages>

创建包文件夹并在那里包含这些包。事情就是在每个这些包文件夹里面,例如MvvmLight.5.2.0.0,我只看到:

Content (Folder)
tools (Folder)
MvvmLight.5.2.0.0.nupkg
MvvmLight.5.2.0.nupkg

没有lib文件夹,当然也没有MvvmLight.5.2.0.0.dll!由于没有拉过dll,因此它不会添加到项目的引用中......

此外,在根目录中,没有.nuget文件夹...我知道在我的旧VS项目中,有一个.nuget文件夹,但我不确定这是否是Nuget的工作方式(如在VS2015 /最新版本的Nuget中)。

使用类似FirebirdSql.Data.FirebirdClient.4.7.0.0的软件包,我在控制台中没有收到任何“null”相关错误,创建了lib文件夹,但是在net45文件夹中只有一个调试文件FirebirdSql.Data.FirebirdClient.pdb,没有dll ...

所以我已经卸载/重新安装了nuget,卸载/重新安装了Visual Studio,仍然存在同样的问题......我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

这看起来像是MvvmLight 5.2 install.ps1 PowerShell脚本中的错误。如果我使用NuGet包管理器控制台安装MvvmLight 5.2,我会看到同样的错误。

有错误的行有:

$resources = null

应该是:

$resources = $null

使用不带美元符号前缀的null无效PowerShell。如果您尝试直接在PowerShell中运行行$resources = null,您将看到与NuGet报告的错误相同的错误。

我会将此报告为针对MvvmLight的错误。

一种解决方法是下载MvvmLight NuGet包,然后使用zip文件编辑器(如7zip)编辑install.ps1文件并修复不正确的PowerShell。然后,您可以设置一个指向包含.nupkg文件的目录的包源,并从那里安装它而不会出现任何错误。