【发布时间】:2018-05-03 07:03:37
【问题描述】:
我有一个 ASP.NET Core Angular Web 应用程序。我使用 Visual Studio 2017 Angular 模板创建了这个项目。我用最新的依赖项制作了一个非常基本的应用程序:
- Microsoft.AspNetCore.All (2.0.7) 作为 NuGET
- Microsoft.NETCore.App (2.0.0) 作为 SDK
我们可以构建应用程序,但在调试时遇到如下异常:
System.IO.FileLoadException HResult=0x80131040 消息=不能 加载文件或程序集'System.ComponentModel.Primitives, 版本=4.2.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'。 找到的程序集的清单定义与程序集不匹配 参考。 (HRESULT 异常:0x80131040)
Source=Microsoft.Extensions.FileProviders.Physical
这里是 StackTrace:
StackTrace:Microsoft.Extensions.FileProviders.PhysicalFileProvider.CreateFileWatcher(String root)
at Microsoft.AspNetCore.Hosting.Internal.HostingEnvironmentExtensions.Initialize(IHostingEnvironment hostingEnvironment, String applicationName, String contentRootPath, WebHostOptions options) at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors) at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() at WebApp.Program.BuildWebHost(String[] args) in D:\Source\WebApp\Program.cs:line 21 at WebApp.Program.Main(String[] args) in D:\Source\WebApp\Program.cs:line 17
我们尝试使用旧版本的 ASP.NET Core 并返回。问题解决了,但是下次我们打开项目时会发生同样的异常。我们无法将 Microsoft.NETCore.App (2.0.0) 的版本更改为较新的版本,因为它是
blocked by the project.
请注意,我们已将 NugetPackages 的位置更改为特定文件夹 (D:\Source\Library)(出于源代码控制的目的)。
【问题讨论】:
-
希望您已设置
repositoryPath以正确指向 Nuget 路径 -
@Developer :我没有设置 repositoryPath,因为根据文档,它仅适用于使用 packages.config 的项目。 globalPackagesFolder 仅适用于使用 PackageReference 格式的项目。所以我将 globalPackagesFolder 设置为 NugetPath (D:\Source\Library)
-
你检查过这个 SO 问题stackoverflow.com/questions/215026/…。它正在尝试查找 System.ComponentModel.Primitives,Version=4.2.0.0,但找不到指定的版本。
-
这个问题你查了吗github.com/dotnet/sdk/issues/803
-
在 NuGet 页面上检查 System.ComponentModel.Primitives 包,没有 4.2.0 版本。奇怪。
标签: c# asp.net asp.net-core nuget-package