一位同事使用Telerik控件製作了一個C#Windows窗體應用程序。應用程序在計算機「DevA」上編譯時在計算機「用戶」上運行,但在計算機「DevB」上編譯時不運行。根據使用哪臺PC編譯C#應用程序失敗
「用戶」 Windows事件日誌的版本,不支持編譯的樣子:
Application: OptionCeaserTool.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
Stack:
at System.ModuleHandle.ResolveType(System.Reflection.RuntimeModule, Int32, IntPtr*, Int32, IntPtr*, Int32, System.Runtime.CompilerServices.ObjectHandleOnStack)
at System.ModuleHandle.ResolveTypeHandleInternal(System.Reflection.RuntimeModule, Int32, System.RuntimeTypeHandle[], System.RuntimeTypeHandle[])
at System.Reflection.RuntimeModule.ResolveType(Int32, System.Type[], System.Type[])
我認爲電腦「發展局」包括不能在運行類型解析的引用。那是對的嗎?如果是這樣,我們怎麼能找出造成這個問題的是什麼類型?
您是否使用了一些源代碼管理?如果你是,你確定你已經檢查了所有的源代碼? x86和x64等兩種不同機器上的體系結構是否有所不同?最後一件事,你是否使用了相同版本的'Telerik',可能你可以在一臺機器上安裝一個補丁,但不能安裝在另一臺機器上。 – jacqijvv
你需要確保所有refrenced DLL被複制到exe旁邊(特別是尋找Telerik的dll)我的猜測有些dll的缺失 –
你可以使用http://technet.microsoft.com/en-us/sysinternals/bb896645 .aspx進行高級監控,以瞭解軟件所請求的文件是什麼,但未找到 –