以下是該場景:兩臺機器上的相同源代碼產生不同的可執行行爲
保存在SVN中的C#Windows應用程序項目用於創建可執行文件。通常,構建服務器會處理構建過程並按定期間隔創建構建,供測試使用。在這個特定的例子中,我被要求修改一個特定的版本並創建可執行文件。
我不完全確定構建服務器是否會修改項目文件,但我知道它會在用於編譯可執行文件的源代碼的SVN中創建一個標記。使用該標籤,我已經在另一臺機器上檢查了代碼,這是一臺開發機器。然後我在開發機器上編譯源代碼。
執行時,在開發計算機上編譯的應用程序的功能與構建服務器編譯的應用程序不完全相同。例如,在測試機器上,應用程序檢測到DateTime Parse的錯誤。但是,生成機器的可執行文件不會引發任何解釋。如果我在開發機器上運行可執行文件,則不會引發異常。
因此,總之,兩臺機器理論上都使用相同的源代碼和項目。
開發機器的可執行文件只能在開發機器上運行。生成機器的可執行文件適用於每臺機器,包括開發機器。
機器的區域設置或時區是否存儲在編譯好的可執行文件中?任何想法可能會導致這種行爲或如何檢查可執行文件以找出可能的差異並糾正它們?
不幸的是,我不能拿一個測試機器,並附加一個調試器。只要我願意,我會盡快。
目前我無法在任何測試機器上運行調試器。我會盡快這樣做。 – 2008-09-17 20:03:43