package\bt32.dll package\bt64.dll而在 32-bit / 64-bit 作業系統上安裝完後, 檔名需要變更為 bt.dll.
在 MSDN 上查了 INF directives, 很直覺地看到了 RenFiles 這個 directive, 於是馬上下去試:
[bt] RenFiles = bt32.RenFiles [bt.NTamd64] RenFiles = bt64.RenFiles [bt32.RenFiles] bt.dll, bt32.dll [bt64.RenFiles] bt.dll, bt64.dll安裝完後也如預期地變更了檔名, 結果之後的 DTM 測試卻報告 "Reinstall With IO" 測試項目失敗, 在分析原因後, 判斷是沒辦法在目地檔案(bt.dll)存在時做更名的動作, 然而 RenFiles directive 並沒有特別的參數來處理此問題, 因此放棄使用 RenFiles directive, 轉而回去研究原本早在使用的 CopyFiles directive.
原來 CopyFiles directive 有支援 copy and rename 的功能, 並且有參數來處理目地檔案存在的問題:
[file-list-section] destination-file-name[,[source-file-name][,[unused][,flag]]]於是趕緊試了一下:
[bt] CopyFiles = bt32.CopyFiles [bt.NTamd64] CopyFiles = bt64.CopyFiles [bt32.CopyFiles] bt.dll, bt32.dll, , 0x00000008 ; COPYFLG_FORCE_FILE_IN_USE [bt64.CopyFiles] bt.dll, bt64.dll, , 0x00000008 ; COPYFLG_FORCE_FILE_IN_USE結果安裝完後也變更了檔名, DTM 測試也通過!
更多資訊:
- INF Directives
沒有留言:
張貼留言