2015-09-07 49 views
3

有時,我的C#應用​​程序中出現System.AccessViolationException,它運行在.Net 4.5.2上。看來,這個問題只發生在Visual Studio 2013中的調試過程中。獲取帶有目標框架的System.AccessViolationException .Net 4.5.2

我每天用.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目標,我不能刪除。

你有什麼想法,爲什麼問題仍然存在?

+0

可能的RyuJIT問題。 https://github.com/dotnet/coreclr/issues/1475使用LegacyJit設置來查看問題是否存在。 – leppie

回答

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發生,沒有任何變化,這是完全正常的。