監視 Data Standard 的行為並識別故障,以便您可以更正程式碼。
有兩種方法可協助您檢閱和除錯程式碼。第一種方法是使用 C:\temp 資料夾中產生的記錄檔 (datastandard<應用程式>log.txt)。第二種方法是使用 $dsDiag 物件在程式碼中的記錄。
c:\temp 下面最多有 3 個記錄檔:dataStandardVaultlog.txt、dataStandardInventorlog.txt、dataStandardAutoCADlog.txt。每個記錄檔均對應於執行 Data Standard 的相應應用程式。
Data Standard 有時會發生一個問題是:變更 XAML 檔案後,對話方塊不會顯示,或在 CAD 中,會顯示標準應用程式儲存對話方塊,而不是「Data Standard」對話方塊。這通常是 XAML 檔案中有錯字的徵兆。在這種情況下,您會在對應的記錄檔中找到錯誤訊息,例如 'System.Windows.Markup.XamlParseException。
當程式碼中存在導致載入或解譯失敗的錯誤時,通常會顯示 XamlParseException 錯誤。此錯誤通常會同時顯示發生檔案解譯失敗的行和位置,如下所示:
"System.Windows.Markup.XamlParseException: ......... Line 14, position 9. --->"
通常,錯誤並不正好出現在該位置,而是在該位置之前某處。但是,如果您看到此訊息,請檢查給定行和位置周圍的 XAML 語法。
發生錯誤時,請務必檢查記錄檔。
在 PowerShell 程式中,您可以加入記錄資訊,這些資訊可能有助於在發生錯誤時除錯程式碼。為此,物件 $dsDiag 提供了一些方法,例如 ShowLog() 用於開啟記錄視窗,Trace("hello") 用於將內容寫入記錄視窗。
此外,還可以在特定位置停止程式碼,並顯示一個小對話方塊,以展示當時可用和設定的所有變數。這是透過 Inspect() 完成的。
若要檢視記錄視窗,請使用 InitializeWindow 函數 (在對話方塊顯示之前呼叫) 將其開啟。將以下行加入至 InitializeWindow 函數:
$dsDiag.ShowLog()
$dsDiag.Clear()
這將開啟記錄視窗並清除內容。
稍後,您可以使用相應訊息將 $dsDiag.Trace("my comments") 加入程式碼中的不同位置,以便您可以在記錄視窗中追蹤函數的進展狀況。最好在每個函數的開始和結束位置加入「函數開始」和「函數結束」追蹤訊息,以便能夠在記錄視窗中輕鬆地追蹤程序呼叫動作。如下所示:
function myFunc
{
$dsDiag.Trace(">> myFunc")
... here comes your code ...
$dsDiag.Trace("<< myFunc")
}
無論您是使用 >> 和 << 做為進入和結束函數的符號,或是簡單的寫上 start 和 end,由您自行決定。
如果您想要知道變數在給定時間的精確狀態,只需加入 $dsDiag.Inspect()。該程式碼將停留在該執行時間,並在出現的對話方塊中顯示具有給定值的可用變數。由於該對話方塊通常顯示在螢幕的左側,因此請確保將「Data Standard」對話方塊放置在右側,以便其不會與檢查程式對話方塊重疊。
在事件處理程式中開啟檢查程式對話方塊有點危險,因此在這些情況下請使用記錄。