在针对 .Net 4.5.2 框架进行开发时,出现了 System.AccessViolationException 异常。

3
有时在我的C#应用程序中出现System.AccessViolationException,运行在.Net 4.5.2上。似乎这个问题只会在Visual Studio 2013的调试期间发生。
我曾经在.Net 4.5.1上多次遇到同样的问题。由于Microsoft .Net bug 819552,我将项目迁移到了.Net 4.5.1。一个月内问题没有再出现。不幸的是,我刚刚在.Net 4.5.2上遇到了AccessViolationException,如上所述。
以下.Net框架已安装:
- Microsoft .NET Framework 4.5.2 - Microsoft .NET Framework 4.5.1 - Microsoft .NET Framework 4.5
我需要不同的.Net目标,但我不能删除它们。
你有任何想法,为什么问题仍然存在吗?

可能是RyuJIT问题。https://github.com/dotnet/coreclr/issues/1475 使用LegacyJit设置查看问题是否仍然存在。 - leppie
1个回答

2
不,你混淆了项目的目标平台选择和实际安装在计算机上的.NET版本。你没有安装4.5或4.5.1版本,4.5.2安装程序替换了这些版本。
改变项目设置没有影响,你仍然使用计算机上唯一的版本4.5.2。项目设置只对其他将要运行你的程序的计算机有影响。当你以4.5.2为目标时,那些计算机必须安装4.5.2。当他们没有安装时,你的程序将无法运行。这几乎从不有用,只需定位你所需要的版本即可。使用4.5总是足够的,4.5.1和4.5.2中的API增加非常有限。
因此,你仍然看到AVE发生是完全正常的,没有任何改变。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接