[英]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.