2015-04-22 83 views
0

我正在使用Object ARX 2015和.Net框架爲AutoCad寫入擴展。在我的電腦上,一切正常。但是當我嘗試在其他計算機上使用我的.dll時。我得到這個錯誤:無法加載類型'System.Windows.Input.ICommand'

Exception Text

System.TypeLoadException: Could not load type 'System.Windows.Input.ICommand' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. at Extension.MyCommands.KeelRibbon() at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) at Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) at Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) at Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()

+1

您確定該DLL包含在輸出目錄中嗎? –

+0

您沒有正確構建該程序集。它建立在安裝了.NET 4.5的機器上,該項目面向.NET 4.0,但使用了錯誤的引用程序集。您必須使用c:\​​ program files(x86)\ reference程序集中的那些文件,而不是c:\ windows \ microsoft.net中的那些文件。 –

+0

@HansPassant即使構建輸出告知可能發生此錯誤我使用的是'C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.dll'這是在你提到的文件夾中,但是用戶在嘗試加載時會得到相同的TypeLoadException ICommand從System.DLL。 – user2023861

回答

0

由於這個類是.Net框架的一部分,如果安裝了正確的.Net版本,它應該在計算機上可用。我建議以下解決方案之一:

  • 請確保您編譯你的項目的.NET版本安裝在另一臺計算機
  • 上如果情況並非如此,你不能安裝正確版本在此計算機上編譯的版本可用的項目(至少NET 3.0)

希望幫助

0

對於基於AutoCAD 2015年,你需要設置.NET 4.5作爲目標Visual Studio項目。

相關問題