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 和 $