簡體   English   中英

C#正在Visual Studio中編寫文件,但發布時卻沒有

[英]C# is writing a file in Visual Studio but not when I publish it

我有以下代碼,應該通過組織列表對它們進行td處理,對每個對象調用toString方法,並將結果打印到控制台和名為Debug1.tab的文件中。

try
{
    StreamWriter print = File.CreateText("Debug1.tab");
    Console.WriteLine(LinkedInClass.isThrottled);
    int p = 1;
    foreach (Org org in orgList)
    {
        try
        {
            if (org.numContacts > 0)
            {
                Console.WriteLine(org.ToString());
                print.WriteLine(org.ToString());
            }
        }
        catch (Exception) {  Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); Console.ReadKey();}
    }
    print.Close();
    Console.WriteLine("There were " + orgList.Count + " organizations in the list." + LinkedInClass.numWithContacts + " of which I found contacts for. Throttling was "+(LinkedInClass.isThrottled?"":"not ")+"encountered.");
    break;
}
catch (Exception e) { Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); Console.ReadKey(); }

在Visual Studio中,它可以完美工作,但是當我發布它時,程序不會創建文件或不會寫入文件。 它仍在寫到控制台,catch語句未執行,並且在它應該關閉streamWriter之后立即將其正確打印到控制台。

指定文件名的方式(不提供路徑),該文件是在當前工作目錄中創建的,該目錄可能與您的應用程序所在的目錄不同。使用磁盤搜索以查看該文件是否有用在其他地方創建。

無論如何:在創建文件時指定一個路徑,以確保它始終位於您期望的位置(並且不要使用Program Files夾,而要使用一些可公開寫入的文件夾)。

您應該將要寫入文件的文件夾授予os curent用戶的完全權限。為此,請右鍵單擊該文件夾,然后轉到屬性,然后轉到securitty選項卡,然后添加該curent用戶(如果該文件夾不存在)並提供該用戶的完全權限。

暫無
暫無

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

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