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



我有一些代码运行良好。我做了一个写入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, @"DataCredential.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 安装程序时?是否需要将资源类型更改为特殊类型?

您是否尝试过获取组装的实际路径? 像下面一样

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

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

最新更新