C#在Visual Studio中编写文件但在发布时却没有

我有以下代码,它们应该通过org列表对每个代码进行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文件夹,而是使用一些可公开写入的文件夹).

点赞