2017-07-10 11 views
0

我有一些工作得很好的代碼。我寫了一篇文章寫入一個XML文件,當我構建它並從Debug文件夾運行.exe時,所有內容都沒有問題。發佈安裝程序時出現問題,出現IO錯誤,找不到文件異常。寫入到XML 部署clickonce安裝程序時未找到文件I/O異常C#

/// <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 DIR最後

件鏈接到XML文件。只有在執行clickonce安裝程序時,會導致此問題崩潰?我是否需要將資源類型更改爲特殊的?

+0

嘗試輸出您的路徑到日誌(或錯誤消息)。我猜想CurrentDirectory不是你所期望的。 – Steveland83

回答

0

您是否嘗試獲取Assembly的實際路徑?像下面一樣

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

你可以嘗試捕捉IOException並查看該文件夾正在用當前代碼查找的內容。它可能會給你一些提示。