如何从 ASP.NET 5 应用中的引用中删除 Angular?

How do I remove Angular from my references in an ASP.NET 5 app?

作为 ASP.NET 5(和 MVC6)的绝对菜鸟,今天我尝试使用 nuget 安装 Angular,即 Install-Package AngularJS.Core。我原以为它会出现在我创建的 Scripts 文件夹下。我不知道它已经是一个 bower 包了。现在我的两个 References 文件夹中的引用标有 Angular 的警告三角形。我该如何摆脱这些?

当我尝试 Uninstall-Package AngularJS.Core 时,我收到一条错误消息,

Package 'AngularJS.Core' to be uninstalled could not be found in project 'Qsaas.Ui'

然而麻烦的引用仍然存在。

您需要在您的项目上再次打开“管理 NuGet 包”并单击“已安装的包”,从那里您将看到“卸载”选项

ASP.NET 5 仅将 NuGet 用于 服务器端 组件。如果您的服务器不直接使用 JavaScript(例如 Node.js),那么您必须切换到使用 bower or alternatively npm. The part 的文档描述了如何包含 AngularJS在 ASP.NET 5 个项目中。

要删除您通过 Install-Package AngularJS.Core 安装的 NuGet 包,您可以使用 Uninstall-Package AngularJS.Core。顺便说一下,如果您是 ASP.NET 5 的新手,我建议您检查 %userprofile%\.nuget\packages%userprofile%\Oleg\.dnx\packages 在哪里可以找到已安装的软件包。有关详细信息,请参阅 the article

更新: 执行 Install-Package AngularJS.Core 命令后,文件夹 AngularJS.Core 将在 %userprofile%\.dnx\packages\AngularJS.Core%userprofile%\.nuget\packages\AngularJS.Core。您还会在项目的 References\DNX 4.5.1References\DNX Core 5.0 下看到 AngularJS.Core (1.4.7) 作为文件夹。您的项目中唯一真正的变化是在 project.json 文件的 "dependencies" 部分中包含 "AngularJS.Core": "1.4.7" 行。如果您只是从 project.json 文件中删除行 "AngularJS.Core": "1.4.7",您将在 project.json 文件中保存更改后立即看到 "Rest"。您可以验证 AngularJS.Core 将保留在 %userprofile%\.dnx\packages%userprofile%\.nuget\packages 中。如果您不需要其他项目中的包,您可以只删除文件夹。

现在您可以在 Visual Studio 的上下文菜单中向项目添加新项目。您可以选择"Client-Side\Bower Configuration File"。它将在您的项目中创建 bower.json 文件。然后,您可以在 bower.json"dependencies" 部分中包含 "angular": "~1.4"(如果 angular,则在 bower 存储库中 angular 的名称)。保存 sile 后,您将看到 "Restoring packages..." 消息,您将在项目 Dependencies 中看到包

您将在项目的 wwwroot\lib\angular 下看到 Angular 个文件。如果您单击 "Show All Files",您将看到 .bowerrc 文件是 bower.json 的子文件。如果有以下内容:

{
    "directory": "wwwroot/lib"
}

您可以考虑在您的网站上使用其他位置的 Bower 库。您可以按照 the article.

中描述的步骤进行操作

您的错误消息的原因是 Visual Studio 想从 project.json 中删除项目 AngularJS.Core 但引用它的行不在 project.json 中。我想它是另一个名称不同的包,并且通过查看您提供的屏幕截图,它位于 bower.json 中。

Nuget 包管理器和命令控制台只需在您的 project.jsonbower.json

中创建条目

您也可以手动删除这些文件中的条目,它会在您保存文件后立即将其从您的项目中删除。

e.g.in 您的 project.json 删除 AngularJS.Core 行条目,例如

"dependencies": {
   "AngularJS.Core": "1.4.7",
   "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
   "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta8",
   "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
   "Microsoft.AspNet.Mvc": "6.0.0-beta8",
 }

"dependencies": {
   "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
   "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta8",
   "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
   "Microsoft.AspNet.Mvc": "6.0.0-beta8",
 }

如果我是你,我会删除 project.jsonbower.json 中引用 angular 的所有行并保存文件。 Visual Studio 会处理剩下的事情。