修改dll文件的文件名並不=修改了其程序集名稱

  例:FgPrint.dll文件引用了PosControl.dll文件。這裏的PosControl.dll是一個從串口輸出文字(打印)的動態鏈接庫,我在測試時不想使用打印機(太費紙了、、、我的血汗錢吶),於是將PosControl.dll文件的原代碼其中訪問串口的文件拷貝一個副本並修改爲寫txt文件,再將工程文件也拷貝一個副本,由此新建了另外一個工程PosControlRobot.csproj,編譯輸出文件爲PosControlRobot.dll。

  我將編譯的文件PosControlRobot.dll修改爲PosControl.dll放入發佈版程序用作打印程序,但是啓動程序時報錯:[未能加載文件或程序集“PosControl, version=0.0.0.0, ……”或它的一個依賴項。系統找不到指定文件。]

  爲什麼會報錯呢?發佈版程序是調用PosControl.dll這個文件啊?經過仔細思考可能是程序在調用時還檢查了dll文件的內部,但是dll文件內部記錄該程序集爲PosControlRobot.dll才造成“系統找不到指定文件”的提示。馬上就試,將工程PosControlRobot的程序集名稱修改爲PosControl,編譯後再將dll文件覆蓋到發佈版程序中,啓動打印程序OK了!Yeah!...

  由此可見程序集名稱僅僅是指編譯設置的“程序集名稱”,而與dll文件沒有必然關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章