一般来说,我们如何确定哪个NuGet包将包含特定的命名空间.
我们正在更改一个项目,以便NuGet处理大多数(如果不是全部)引用的程序集.在第一步中,我们删除所有引用从*.csproj文件中删除bin/,删除现有的packages/和packages.config,并删除任何*.dll项目.在第二步中,我们构建了项目并读取了缺少的程序集引用的错误列表.一次一个,我们使用NuGet添加每个缺少的引用.例如
Install-Package Microsoft.AspNet.Mvc
Install-Package Microsoft.AspNet.Identity.Core
Install-Package EntityFramework
Install-Package Microsoft.AspNet.Identity.EntityFramework
Install-Package Microsoft.Owin
Install-Package Microsoft.AspNet.Web.Optimization
Install-Package Microsoft.AspNet.Identity.Owin
Install-Package Microsoft.Owin.Host.SystemWeb
Run Code Online (Sandbox Code Playgroud)
有时很难确定要安装的NuGet包.其他时候没有NuGet包,我们需要添加引用"老式方式".
执行上述操作可以解决以下所有错误.但是花了一段时间,我想知道下次如何找到合适的NuGet包.
命名空间"System"中不存在类型或命名空间名称"Web"(您是否缺少程序集引用?)
找不到类型或命名空间名称"UserManager"(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'RouteCollection'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'RequiredAttribute'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'Required'(您是否缺少using指令或程序集引用?)
命名空间"Microsoft"中不存在类型或命名空间名称"Owin"(您是否缺少程序集引用?)
找不到类型或命名空间名称'IUserStore'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称"IOwinContext"(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'IdentityUser'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称"Display"(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'DisplayAttribute'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'EmailAddress'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'EmailAddressAttribute'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'HttpPost'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'HttpPostAttribute'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'IAppBuilder'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称"IDataProtectionProvider"(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称"IdentityDbContext"(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'IdentityFactoryOptions'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'IdentityResult'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'DataTypeAttribute'(您是否缺少using指令或程序集引用?)
找不到类型或命名空间名称'DataType'(您是否缺少using指令或程序集引用?)
名称空间'System'中不存在类型或命名空间名称'Data'(您是否缺少程序集引用?)
找不到类型或命名空间名称'Controller'(您是否缺少using指令或程序集引用?)
命名空间"System"中不存在类型或命名空间名称"ComponentModel"(您是否缺少程序集引用?)
找不到类型或命名空间名称'CompareAttribute'(您是否缺少using指令或程序集引用?)
命名空间"Microsoft"中不存在类型或命名空间名称"AspNet"(您是否缺少程序集引用?)
找不到类型或命名空间名称'ActionResult'(您是否缺少using指令或程序集引用?)
简而言之,没有办法知道……因为没有要求 NuGet 包发布或提及其命名空间。最重要的是,命名空间可以存在于多个程序集中,这意味着同一个命名空间可以存在于多个 NuGet 包中(尤其是当您不知道需要哪个版本时)。
例如,仅仅因为我的 NuGet 包具有 System.Web.MVC 并不意味着它具有您正在寻找的依赖项。
基本上,您必须知道您需要哪些软件包。这就是packages.conf 文件的用途。通过删除它,您删除了了解需要哪些程序集和版本所需的信息。
| 归档时间: |
|
| 查看次数: |
5191 次 |
| 最近记录: |