ASP.NET 5 项目未正确定位 .NET 4.6.1 且无法调试

Posted

技术标签:

【中文标题】ASP.NET 5 项目未正确定位 .NET 4.6.1 且无法调试【英文标题】:ASP.NET 5 Project Not Properly Targeting .NET 4.6.1 and cannot be debugged 【发布时间】:2016-04-21 10:16:15 【问题描述】:

我正在运行 ASP.NET5 RC1 UPDATE1。在 project.json 我的框架是“dnx461”。当我尝试调试时(在 DNX_IIS_RUNTIME_FRAMEWORK 设置为 DNX461 的 IIS Express 中)我收到以下警告:

警告 MSB3274 无法解析主要引用“C:\mydll.dll”,因为它是针对“.NETFramework,Version=v4.6.1”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.5.1”更高的版本。 WebTest C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets

“mydll”是一个 .NET 4.6.1 DLL。当我尝试使用 IIS Express 进行调试时,我在调试窗口中得到以下输出:

“dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 “dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“Microsoft.Dnx.Host.Clr”。无法找到或打开 PDB 文件。 “dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 “dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 “dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.Host .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 “dnx.exe”(CLR v4.0.30319:DefaultDomain):已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Extensions.PlatformAbstractions .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.Loader .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.ApplicationHost .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.Runtime .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.Compilation .dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 'dnx.exe' (CLR v4.0.30319: DefaultDomain): 加载'C:\Users\devuser.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\Microsoft.Dnx.Compilation .Abstractions.dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 程序“[16968] dnx.exe”已退出,代码为 1 (0x1)。 程序“[16968] dnx.exe:程序跟踪”已退出,代码为 0 (0x0)。 程序“[20612] iisexpress.exe:程序跟踪”已退出,代码为 0 (0x0)。 程序“[20612] iisexpress.exe”已退出,代码为 -1 (0xffffffff)。

我正在使用带有 Update 1 的 VS2015。我该如何解决这个问题?

【问题讨论】:

我现在遇到和你一样的问题,不知道什么时候能解决? 【参考方案1】:

因此,从网上搜索来看,目前似乎是 .NET 4.6.1(不支持 RC1 Update 1)。我将我的项目切换回 .NET 4.6,并在我的 project.json 中使用 dnx46,一切都按预期工作。

【讨论】:

【参考方案2】:

将您的目标框架更改为 .NET 4.6.1。

在解决方案资源管理器中右键单击您的项目并选择属性。然后,在 Application 选项卡下,选择一个新的 Target 框架。

【讨论】:

这不适用于 ASP.NET 5 项目。没有“目标框架”,只有一个“解决方案 DNX SDK 版本”,对我来说是 1.0.0-rc1-update1

以上是关于ASP.NET 5 项目未正确定位 .NET 4.6.1 且无法调试的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET (dotnet 2) IIS7 - NameValueCollection 数组未正确读取

ASP.NET Web API:返回 401/未授权响应的正确方法

使用 webpack 在 ASP.NET Core 项目中未定义 jQuery 和 $

Angular2 Http 发布请求未绑定到 ASP.NET 5 控制器的操作

ASP.NET 4.5 尚未在 Web 服务器上注册

IIS7.5下的Asp Net Mvc 4应用程序未重定向到登录页面[重复]