无痕卸载 Microsoft ASP.NET SignalR
Uninstall Microsoft ASP.NET SignalR with no traces
几天前,当我想在项目中使用 SignalR 时,我使用包管理器控制台安装了 Microsoft.AspNet.SignalR。
Install-Package Microsoft.AspNet.SignalR
我找到了另一个更简单的解决方案来解决项目中不再需要 SignalR 的问题。我卸载了软件包:
Uninstall-Package Microsoft.AspNet.SignalR
在 运行 上述命令之后,我注意到包 Microsoft.AspNet.SignalR
已从 package.config
文件中删除。
我假设对项目进行的包安装的任何更改,它都会使用卸载命令自动清除。
然而,一天后我在控制台日志中看到了一些错误。
WebSocket connection to 'ws://localhost:61135/signalr/reconnect?transport=webSockets&messageId=d-74CFF57F-B%2C0%7CF%2C0%7CD%2C0%7CG%2C1&clientProtocol=1.5&connectionToken=moGkKaoibXu6xg4srnQoGTdxp3axLXQ5h5guoaVYP25MgSKutfN8D%2FyQcJhXamlWjnAhBDIPMjWUEoM9W3%2BP6SQcoQ98jwuiV7lox%2BMNfgyx2x0FOlj6%2BO2PcQ%2Fl3WgwYsbQd7J%2FL1XFVe3yOvNuzw%3D%3D&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=4' failed: Error during WebSocket handshake: Unexpected response code: 502
我觉得虽然我不再在 JS 中初始化集线器,但集线器初始化代码仍然在某处 运行。我删除了作为添加 SignalR 的一部分添加的 StartUp.cs。 运行 应用程序并在浏览器上发现 this 错误。
然后我调查了我的代码库中还剩下什么,发现 SignalR 确实留下了很多依赖包和代码文件。
比较我的 package.config 文件,安装命令的结果如下:
+ <package id="Microsoft.AspNet.SignalR.Core" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.AspNet.SignalR.JS" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net45" />
问题一
我是否必须逐一手动卸载这些软件包?有捷径吗?
问题二
即使卸载后脚本文件夹中也有js文件,我不得不手动删除它。这真的需要吗?
jquery.signalR-2.2.0.js
jquery.signalR-2.2.0.min.js
这是 SignalR 包的问题还是我做错了什么来面对这种浪费时间的情况?
您需要卸载带有依赖项的包才能删除依赖项。
- 使用 VS UI(在解决方案或项目的属性中管理包)
添加 -RemoveDependencies
如 NuGet Powershell Reference
中所述
Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
(要退出当前状态,您可能需要重新安装软件包,而不是使用依赖项进行卸载)。
几天前,当我想在项目中使用 SignalR 时,我使用包管理器控制台安装了 Microsoft.AspNet.SignalR。
Install-Package Microsoft.AspNet.SignalR
我找到了另一个更简单的解决方案来解决项目中不再需要 SignalR 的问题。我卸载了软件包:
Uninstall-Package Microsoft.AspNet.SignalR
在 运行 上述命令之后,我注意到包 Microsoft.AspNet.SignalR
已从 package.config
文件中删除。
我假设对项目进行的包安装的任何更改,它都会使用卸载命令自动清除。
然而,一天后我在控制台日志中看到了一些错误。
WebSocket connection to 'ws://localhost:61135/signalr/reconnect?transport=webSockets&messageId=d-74CFF57F-B%2C0%7CF%2C0%7CD%2C0%7CG%2C1&clientProtocol=1.5&connectionToken=moGkKaoibXu6xg4srnQoGTdxp3axLXQ5h5guoaVYP25MgSKutfN8D%2FyQcJhXamlWjnAhBDIPMjWUEoM9W3%2BP6SQcoQ98jwuiV7lox%2BMNfgyx2x0FOlj6%2BO2PcQ%2Fl3WgwYsbQd7J%2FL1XFVe3yOvNuzw%3D%3D&connectionData=%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&tid=4' failed: Error during WebSocket handshake: Unexpected response code: 502
我觉得虽然我不再在 JS 中初始化集线器,但集线器初始化代码仍然在某处 运行。我删除了作为添加 SignalR 的一部分添加的 StartUp.cs。 运行 应用程序并在浏览器上发现 this 错误。
然后我调查了我的代码库中还剩下什么,发现 SignalR 确实留下了很多依赖包和代码文件。
比较我的 package.config 文件,安装命令的结果如下:
+ <package id="Microsoft.AspNet.SignalR.Core" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.AspNet.SignalR.JS" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.0"
targetFramework="net45" />
+ <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
+ <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net45" />
问题一
我是否必须逐一手动卸载这些软件包?有捷径吗?
问题二
即使卸载后脚本文件夹中也有js文件,我不得不手动删除它。这真的需要吗?
jquery.signalR-2.2.0.js
jquery.signalR-2.2.0.min.js
这是 SignalR 包的问题还是我做错了什么来面对这种浪费时间的情况?
您需要卸载带有依赖项的包才能删除依赖项。
- 使用 VS UI(在解决方案或项目的属性中管理包)
添加
中所述-RemoveDependencies
如 NuGet Powershell ReferenceUninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
(要退出当前状态,您可能需要重新安装软件包,而不是使用依赖项进行卸载)。