部署clickonce安装程序C#时找不到文件I / O异常

时间:2017-07-10 00:26:58

标签: c# xml clickonce

我有一些代码工作得很好。我写了一个文件,我写了一个XML文件,当我构建它并从Debug文件夹运行.exe时,所有内容都没有问题。当我发布安装程序时出现问题,我收到IO错误,找不到文件异常。

写入XML的片段

    /// <summary>
    /// Injects new user data into credentials XML
    /// </summary>
    /// <param name="username"></param>
    /// <param name="password"></param>
    /// <param name="xmlSource"></param>
    public static void AddUser(string username, string password)
    {
        string xmlPath = Path.Combine(Environment.CurrentDirectory, @"Data\Credential.xml");
        XDocument doc = XDocument.Load(xmlPath);
        XElement user = doc.Element("Users");
        user.Add(new XElement("User",
                   new XElement("username", username),
                   new XElement("password", password)));
        doc.Save(xmlPath);
    }

xmlPath获取当前目录并附加Data目录,最后链接到XML文件。只有在我执行clickonce安装程序时才会导致崩溃的原因是什么?我是否需要将资源类型更改为特殊内容?

1 个答案:

答案 0 :(得分:0)

您是否尝试获得装配的实际路径?如下所示

var path = System.Reflection.Assembly.GetExecutingAssembly().Location;
var dir= Path.GetDirectoryName(exePath);
var youdatafolder = Path.Combine(dir, "/Data");

您可以尝试捕获IOException并查看该文件夹使用当前代码查找的内容。它可能会给你一些提示。