none
VB2005 產生的執行檔,給工作排程跑,出問題 RRS feed

  • 問題

  • 各位好:

    小弟以 VB2005 產生一個檔案。
    以檔案總管去點選執行的話,沒問題。
    交給工作排程執行,則會產生錯誤。錯誤是「找不到檔案」。檔案是 Informix Driver。

    不知道是不是「環境變數」的問題?(可能是 PATH 變數?)
    我又該如何將我在 DOS 下看到的一堆變數,硬加給這個執行檔呢?
    謝謝。
    Thanks for any information. Streit Huang @ Taiwan
    • 已編輯 Streit Huang 2010年2月9日 上午 05:21 add more info
    2010年2月9日 上午 05:19

解答

  • Hi,

    你是要放在exe裡面?
    還是要放在exe所在目錄?
    若是前者,考慮使用ILMerge
    若是後者,則在方案總管上選取參考的組件
    在屬性視窗的複製到本機設為True

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年2月12日 上午 04:27

所有回覆

  • Hi,

    您VB2005產生的檔案是哪種檔案?
    用檔案總管連點是會用哪個程式打開?
    字面看起來像是程式碼內用相對路徑或是當前路徑去找尋檔案
    若程式無法更動的話
    看看工作排程那邊是否有開始位置可以設定
    有的話設定後再試看看

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年2月9日 上午 05:34
  • 各位好:

    小弟以 VB2005 產生一個檔案。
    以檔案總管去點選執行的話,沒問題。
    交給工作排程執行,則會產生錯誤。錯誤是「找不到檔案」。檔案是 Informix Driver。

    不知道是不是「環境變數」的問題?(可能是 PATH 變數?)
    我又該如何將我在 DOS 下看到的一堆變數,硬加給這個執行檔呢?
    謝謝。
    Thanks for any information. Streit Huang @ Taiwan

    Hi!

    1. 以檔案總管去點選執行的話,沒問題。交給工作排程執行,則會產生錯誤。錯誤是「找不到檔案」。檔案是 Informix Driver。
    這要看你程是關於路徑部分是怎麼寫的,是用相對路徑或者絕對路徑或者其他方式

    2. 將我在 DOS 下看到的一堆變數,硬加給這個執行檔呢?
    我猜測您是想要在執行檔後面下參數,可以這樣寫

            Dim startInfo As New ProcessStartInfo("ogr2ogr.exe")
            startInfo.Arguments = " -f 'GML' "
            Dim Proc As New Process()
            Proc.StartInfo = startInfo
            Proc.Start()


    我的Blog .NET菜鳥自救會
    2010年2月9日 上午 05:38
    版主
  • 看完本版置頂這篇後,把你的問題重新整理一遍。
    張貼文章應注意事項及應提供資訊
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年2月9日 下午 03:16
  • 對不起。資訊不夠明確。

    VB2005 on Windows XP

    寫程式時,因為程式內有使用 IBM Informix,這個 driver 有安裝 .Net 原件至 Windows 內,在撰寫過程中,也有將他加入到 reference 內。

    我是拿 \bin\debug 裡面的 exe 來使用. 結果發現, 這個目錄裡面,他把 Informix.dll copy 進來了, 因此如果我直接點選此 exe 執行, 是不會出問題的.
    我把此執行檔 單獨 copy 至別處, 則會發生 File Not Found. 此時再將 dll 一併 copy 過來和 exe 放在同一目錄下, 則執行無問題.

    之前寫的類似程式, 因為都是以發佈到 web 去給使用者使用, 所以沒發生這個問題.
    單獨使用 exe 時, 就發生了 dll 的問題...

    請教如何設定, 要他把此 dll 於 build 時, 一併放在 exe 裡面呢?

    謝謝.
    Thanks for any information. Streit Huang @ Taiwan
    2010年2月12日 上午 04:03
  • Hi,

    你是要放在exe裡面?
    還是要放在exe所在目錄?
    若是前者,考慮使用ILMerge
    若是後者,則在方案總管上選取參考的組件
    在屬性視窗的複製到本機設為True

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年2月12日 上午 04:27
  • 給 Web Server 用的話,放在虛擬應用程式下的 bin 目錄內。

    例如:
    \WebApp
    則複製到
    \WebApp\bin\Informix.dll 


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年2月13日 上午 03:02
  • 如果你是要從 Web 散佈 WinApp 的話,可跟執行檔同目錄,或放在執行檔 bin 目錄下,.Net DLL 會自動從 GAC 或前面說的兩個位置參照。

    ex.
    WinApp\WinApp.exe


    WinApp\Informix.dll
    WinApp\bin\Informix.dll

    均可


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年2月13日 上午 03:05