1. 程式人生 > >C# VB.NET 安裝解除安裝windows服務錯誤

C# VB.NET 安裝解除安裝windows服務錯誤

一、背景

筆者自己使用vs2017編寫了一個數據採集的windows服務程式(.net4.5),同時又編寫了一個控制windows服務安裝解除安裝的winform程式(.net3.5)。

 

二、錯誤資訊

{System.BadImageFormatException: 未能載入檔案或程式集“file:///E:\***\***.exe”或它的某一個依賴項。生成此程式集的執行時比當前載入的執行時新,無法載入此程式集。

三、分析

看了一篇部落格,老哥也是遇到這問題,看他提到了要將VS專案屬性改為x86,還提到windows上安裝.net4.0,由.net4.0受到啟發,

x86的話 windows服務程式和控制安裝解除安裝的winform都已改為x86。

難道是它們的.net版本不一致?

windows服務是.net4.5

winform是3.5

然後將winform改為.NET4.5,重新編譯,可以安裝,解除安裝windows服務了。

四、原因

個人水平原因及網上也沒搜到相關答案,這個原因只能去猜測,目前我也沒啥證據。

猜測winform程式解除安裝windows服務時,可能會呼叫windows服務相關的.NET底層的一些庫也好,元件也好。

因為之前winform是3.5編寫的,安裝或解除安裝時,呼叫windows服務相關的.NET 4.5的基礎元件或庫時,就可能出現問題了。

即出現了上面的錯誤資訊。

 

這個原因分析屬於猜測,如有準確答案,望留言指教!