将 VS2015 升级到 asp.net 5 beta7 我得到 Could not load file or assembly 'dnx.clr.managed' or one of its dependencies
Upgrading VS2015 to asp.net 5 beta7 I get Could not load file or assembly 'dnx.clr.managed' or one of its dependencies
我已经按照 https://github.com/aspnet/Home 上的说明升级了 DNX 我还为 visual studio 2015 下载了 DotNetVersionManager-x64.msi 但是当我创建一个新项目和 运行 网站时我收到以下错误
Could not load file or assembly 'dnx.clr.managed' or one of its dependencies. The system cannot find the file specified.
当我尝试从 dnx 命令行 运行 网站时,我得到以下
C:\code> dnx 网络
stem.InvalidOperationException: 类型 'Microsoft.Framework.Runtime.IApplicationEnvironment' 的服务尚未注册
累了。
在 Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService(IServiceProvider 提供者,Ty
服务类型)
在 Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService[T](IServiceProvider 提供商)
在Microsoft.AspNet.Hosting.Program.Main(字符串[]参数)
- 从先前抛出异常的位置开始的堆栈跟踪结束 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly 程序集,String[] args,IServiceProvider 服务
提供者)
在 Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost 主机,String applicationName,String[] args)
在 Microsoft.Dnx.ApplicationHost.Program.Main(字符串 [] 参数)
- 从先前抛出异常的位置开始的堆栈跟踪结束 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly 程序集,String[] args,IServiceProvider 服务
提供者)
在 Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args,IRuntimeEnvironment env,FrameworkName targetFramework)
在 Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, FrameworkName targetFramework)
在 Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, FrameworkName targetFramework)
看起来 beta7 不再带有 dnx.clr.managed.dll(及其依赖项)。我已经通过以下步骤解决了这个问题:
您可以通过在 global.json[=39= 中查找以下节点来检查您的 global.json 文件是否期待 beta7 ]:
"sdk": {
"version": "1.0.0-beta7",
"runtime": "clr",
"architecture": "x86"
}
如果您的项目一直在寻找 dnx.clr.managed.dll(及其依赖项),您可以手动编辑 project.json 文件(它存储依赖关系并替换旧的 cs.proj 和 vb.proj 文件),指向预期的 dnx 运行time 版本,例如:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5"
},
编辑为:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7"
},
保存更改后,您必须恢复 依赖项。一种方法是使用终端 (CMD) 导航到 ProjectName/src/ProjectName/ 文件夹(project.json 文件所在的位置), 然后执行
dnu restore
命令。希望它会成功请求新的依赖项,您就可以开始了。
PS.: 我没有尝试 运行 x64 设置,因为 free/shared 应用程序可能(?)与 64 位平台设置不兼容。如果我说错了,请随时纠正我。
我在 IIS Express 中尝试 运行 将项目从 beta-5 升级到 beta-8 后遇到此错误。我能够通过删除 wwwroot\web.config
:
中的这一行来修复它
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
它一定已经包含在早期版本的项目模板中,并且可能与新的请求管道不兼容,但我还没有找到任何文档来证实这一点。
我已经按照 https://github.com/aspnet/Home 上的说明升级了 DNX 我还为 visual studio 2015 下载了 DotNetVersionManager-x64.msi 但是当我创建一个新项目和 运行 网站时我收到以下错误
Could not load file or assembly 'dnx.clr.managed' or one of its dependencies. The system cannot find the file specified.
当我尝试从 dnx 命令行 运行 网站时,我得到以下
C:\code> dnx 网络 stem.InvalidOperationException: 类型 'Microsoft.Framework.Runtime.IApplicationEnvironment' 的服务尚未注册 累了。 在 Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService(IServiceProvider 提供者,Ty 服务类型) 在 Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService[T](IServiceProvider 提供商)
在Microsoft.AspNet.Hosting.Program.Main(字符串[]参数) - 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly 程序集,String[] args,IServiceProvider 服务 提供者) 在 Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost 主机,String applicationName,String[] args) 在 Microsoft.Dnx.ApplicationHost.Program.Main(字符串 [] 参数) - 从先前抛出异常的位置开始的堆栈跟踪结束 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly 程序集,String[] args,IServiceProvider 服务 提供者) 在 Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args,IRuntimeEnvironment env,FrameworkName targetFramework) 在 Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, FrameworkName targetFramework) 在 Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, FrameworkName targetFramework)
看起来 beta7 不再带有 dnx.clr.managed.dll(及其依赖项)。我已经通过以下步骤解决了这个问题:
您可以通过在 global.json[=39= 中查找以下节点来检查您的 global.json 文件是否期待 beta7 ]:
"sdk": {
"version": "1.0.0-beta7",
"runtime": "clr",
"architecture": "x86"
}
如果您的项目一直在寻找 dnx.clr.managed.dll(及其依赖项),您可以手动编辑 project.json 文件(它存储依赖关系并替换旧的 cs.proj 和 vb.proj 文件),指向预期的 dnx 运行time 版本,例如:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5"
},
编辑为:
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta7"
},
保存更改后,您必须恢复 依赖项。一种方法是使用终端 (CMD) 导航到 ProjectName/src/ProjectName/ 文件夹(project.json 文件所在的位置), 然后执行
dnu restore
命令。希望它会成功请求新的依赖项,您就可以开始了。
PS.: 我没有尝试 运行 x64 设置,因为 free/shared 应用程序可能(?)与 64 位平台设置不兼容。如果我说错了,请随时纠正我。
我在 IIS Express 中尝试 运行 将项目从 beta-5 升级到 beta-8 后遇到此错误。我能够通过删除 wwwroot\web.config
:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
它一定已经包含在早期版本的项目模板中,并且可能与新的请求管道不兼容,但我还没有找到任何文档来证实这一点。