2015-10-03 48 views
2

我試圖分析在C#中使用MathNet表達的字符串,當我嘗試這種代碼:MathNet - 'System.TypeInitializationException'

var h = MathNet.Symbolics.Infix.ParseOrUndefined("1/(a*b)");

扔例外。

「類型‘System.TypeInitializationException’未處理的異常發生在MathNet.Symbolics.dll

附加信息:對於‘$綴’的類型初始值引發了異常。」

我在哪裏錯了? 我用 MathNet v.0.6.0.0的Visual Studio 2012快速

更新

它是由修補程序解決了這是我的壞不更新窗口。

回答

0

這些依賴關係似乎有問題。你能列出你使用的是什麼確切的軟件包版本嗎?以及你正在編譯的.Net版本。

假設您已經通過NuGet安裝了Math.NET Symbolics,您能否嘗試更新所有依賴項(使用NuGet)?

編輯:我無法用較新版本的VisualStudio複製此版本 - 是否有機會升級,例如:到VisualStudio Community這是免費的嗎?

+0

所有依賴關係都會更新。 這是我得到的日誌 System.TypeInitializationException:'。$ Infix'的類型初始值設定項引發異常。 ---> System.Security.VerificationException:操作可能會破壞運行時的穩定性。 在FParsec.InfixOperator'3..ctor(字符串operatorString,FSharpFunc'2 afterStringParser,的Int32優先級,關聯性的關聯性,FSharpFunc'2映射) 在。$ Infix..cctor() –

+0

好的,現在,這是另一個野獸。有一些問題導致這種情況,但根據我的理解,修復程序已修復 - 您的系統是否具有所有Windows更新的最新版本? –

+0

aw!我懂了。謝謝。 :) 我忘了搜索內部異常的解決方案,而不是外部。我的錯。 –

-1

我猜你必須使用語法:

var H = MathNet.Symbolics.Infix.Parse "1/(a*b)"; 

有趣的注意的是,以上函數將返回1 /(A * B),而不是該計算的解決方案。如果你想H得到結果,你必須使用:

var H = MathNet.Symbolics.Infix.Parse "1/(a*b)"; 
MathNet.Symbolics.Infix.Print(H); 
+0

謝謝你的迴應。我編輯了這個問題,我只是按照這裏說的。 [鏈接](http://symbolics.mathdotnet.com/)。但得到錯誤 –

+0

是MathNet正確引用的形式(頂部,使用MATHNET)? A和B是否正確初始化? MathNet和.NET Framework是相同的版本嗎? –

+0

是的。 「Infix.Print()」方法工作和其他方法,但「Infix.ParseOrUndefined」和「Infix.ParseOrThrow」拋出和異常。 –

相關問題