asp.net - Nuget 不更新 ASP.NET 网站中的包引用

标签 asp.net git version-control nuget nuget-package-restore

关于:我有一个 ASP.NET 网站(不是 Web 项目),解决方案中有 3 个类库项目。早些时候我使用的是 SVN,但现在使用的是 Git 源代码管理。我已经在计算机(用作服务器)上本地安装了 git,并用它来 merge 其他开发人员的源代码。此外,我正在使用 Visual Studio 2015 社区版,它提供了使用 git 的工具。

问题:从主存储库克隆项目后,我构建项目来运行它。构建项目会显示一个对话框,上面写着“程序包还原正在进行中”。此过程创建一个名为“Packages”的文件夹,该文件夹包含 packages.config 文件中列出的每个包。但是恢复完成后,项目抛出如下异常:

此异常针对每个包显示(此处为 Autofac)。

The type or namespace name 'Autofac' could not be found (are you missing a using directive or an assembly reference?)

解决方法 为了解决这个问题,我需要卸载每个包并重新安装,问题就解决了。我需要为每台开发人员机器一次又一次地做这件事,这既令人沮丧又耗时。

有没有人在 ASP.NET 中使用 Nuget、git 和网站时遇到过同样的问题。

最佳答案

我以前遇到过这样的问题。在我的例子中,原因是我更改了项目路径(将项目移动到另一个目录),并且 packages 目录(包含 NuGet 包)的路径存储在旧路径的 csproj 文件中,即 VS无法还原 NuGet 包。解决方案是手动编辑 csproj 并使其引用正确的新包路径。

如果这对您不起作用,您仍然可以使用您的解决方法,但为简单起见,请使用以下 PowerShell 命令(在 NuGet 控制台中):

Update-Package -reinstall -Project Your.Project.Name

注意:项目名不包含csproj扩展名,只是项目名

关于asp.net - Nuget 不更新 ASP.NET 网站中的包引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39274033/

相关文章:

git - 替换远程 git 仓库 (Heroku)

version-control - 视觉源安全 : get versions where a specific line has changed

version-control - 用 Mercurial 包装 Dropbox 进行版本控制——疯狂的想法?

取消选中时,ASP.NET CheckBox 不会触发 CheckedChanged 事件

c# - StackExchange.ConnectionMultiplexer.GetServer 不工作

c# - 将 C# Web 服务参数传递给 PHP 应用程序

javascript - 在 Microsoft Ajax 中,$find 究竟做了什么?

php - 在 Windows 上执行 Git 钩子(Hook)

git - 是否有可能恢复被压缩的提交历史记录

Python 测试/TeamCity 集成/健全的包管理