C#应用程序没有在不同的机器上运行

时间:2012-03-10 02:07:30

标签: c#

我有一个C#应用程序可以在我的开发机器上正常加载但是甚至无法在Win2008机器上启动。

选中的框架,它们匹配,Net 4.0

我立即怀疑问题是由于我正在阅读的特定文件的引用引起的,当然,使用一些测试代码我将其缩小到一行。

public static string[] salesArray = (File.ReadAllLines("sales.txt").ToArray());

如果我注释掉上面一行,测试应用程序会启动,如果我将其保留,则会失败。有什么想法吗?

我将Debug目录复制到其中的第二台机器(sales.txt)。

这是整个代码。该应用程序只会打开一个空白窗口。

namespace testServer
{
    public partial class Form1 : Form
    {

        public static string[] salesArray = (File.ReadAllLines("sales.txt").ToArray());

        public Form1()
        {
            InitializeComponent();
        }
    }
}

3 个答案:

答案 0 :(得分:3)

两个潜在问题突然出现:

1)应用程序的当前工作目录不是您认为的: 如果你可以打印/显示这个,你肯定会知道。 http://msdn.microsoft.com/en-us/library/system.io.directory.getcurrentdirectory.aspx

因为您指定了相对路径,所以当前工作目录是解析文件的目的。

2)也许权限。您可以右键单击“以管理员身份运行”作为对该理论的快速检查。

答案 1 :(得分:2)

您应该使用更好的机制来查找该文件,并在打开文件之前检查它是否存在(例如:File.Exists)。

这也可以让您向用户报告是否存在问题,例如文件不存在您希望的位置。

答案 2 :(得分:1)

在代码周围放置一个异常处理程序。您可以收到错误消息,并可以优雅地处理失败。

它应该处理所有错误(找不到文件,正在使用的文件,权限错误等)。