我有一个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();
}
}
}
答案 0 :(得分:3)
两个潜在问题突然出现:
1)应用程序的当前工作目录不是您认为的: 如果你可以打印/显示这个,你肯定会知道。 http://msdn.microsoft.com/en-us/library/system.io.directory.getcurrentdirectory.aspx
因为您指定了相对路径,所以当前工作目录是解析文件的目的。
2)也许权限。您可以右键单击“以管理员身份运行”作为对该理论的快速检查。
答案 1 :(得分:2)
您应该使用更好的机制来查找该文件,并在打开文件之前检查它是否存在(例如:File.Exists
)。
这也可以让您向用户报告是否存在问题,例如文件不存在您希望的位置。
答案 2 :(得分:1)
在代码周围放置一个异常处理程序。您可以收到错误消息,并可以优雅地处理失败。
它应该处理所有错误(找不到文件,正在使用的文件,权限错误等)。