簡體   English   中英

C#命令行項目-通過.exe運行時出錯

[英]C# command line project - Error when run via .exe

我有一個正常編譯的C#項目。 當我通過Visual Studio的IDE運行該項目時,它運行良好並且運行干凈。 但是,當我導航到項目目錄並嘗試通過雙擊“ exe”文件或通過運行窗口引用它來運行該程序時,會出錯。

我已將問題縮小到

Console.WriteLine("output ->" + any_variable);

由於某種原因,如果我使用console.writeline打印任何變量,則如前所述運行該應用程序將出錯。

如果我刪掉這一行,如果我雙擊它,Visual Studio創建的可執行文件將運行良好。 我對此很困惑。 我的目標是將此命令行項目創建為計划任務。

我認為錯誤與WriteLineConsole沒有任何關系。 從IDE運行和通過雙擊運行之間的常見區別可能是權限(即,您可以以admin身份啟動IDE,或者您正在寫入/讀取/從中讀取的位置不同,並且附加了不同的ACL。它),這似乎不是這種情況。

要捕獲您的實際錯誤,請編譯為調試模式。 啟動您的應用程序(可能帶有某種消息框)。 啟動IDE並選擇“調試並附加到進程”(如果有消息框暫停應用程序,則可以一直使用)。 選擇您的過程。 運行,直到收到錯誤。 即使您通過雙擊EXE運行應用程序,現在也應該在IDE中收到錯誤。 您可以像通常一樣看到堆棧並進行調試。

我猜? 您要打印的變量會引起錯誤。

替代性地:圍繞違規語句進行簡單的try / catch以及帶有Exception.Message的消息框也應為您提供更多的信息。

對不起,我錯了...所以編輯

將您的代碼放入try {} catch {}結構中:

try
{
//your code goes here
}
catch (Exception ex)
{
    Console.WriteLine("An error occured: {0}", ex.Message);
    if (ex.InnerException != null)
       Console.WriteLine("Inner Exception: {0}", ex.InnerException.Message);
    Console.WriteLine("Stack Trace: {0}", ex.StackTrace);
}

這很有必要找出是您的問題,在哪一行代碼等處。

我不知道這是否適用於您的情況,但是前幾天我在這里發布了一個非常類似的問題: 運行應用程序時出現奇怪的錯誤消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM