當我試圖通過創建應用程序配置文件,如果不存在,C#
ConfigurationManager.OpenExeConfiguration(filePath);
它返回一個例外,打開我的應用程序的配置文件,因爲沒有文件。但是我需要在這種情況下創建這個文件。但據我所知,配置文件創建通過添加在VS像How to: Add an Application Configuration File to a C# Project
那麼,如何以其他方式創建此文件?
當我試圖通過創建應用程序配置文件,如果不存在,C#
ConfigurationManager.OpenExeConfiguration(filePath);
它返回一個例外,打開我的應用程序的配置文件,因爲沒有文件。但是我需要在這種情況下創建這個文件。但據我所知,配置文件創建通過添加在VS像How to: Add an Application Configuration File to a C# Project
那麼,如何以其他方式創建此文件?
如果你真的要在運行時創建一個空的配置文件,你可以做這樣的事情,但要注意的是,如果配置文件已經存在,這個代碼將覆蓋它:
System.Text.StringBuilder sb = new StringBuilder();
sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
sb.AppendLine("<configuration>");
sb.AppendLine("</configuration>");
string loc = Assembly.GetEntryAssembly().Location;
System.IO.File.WriteAllText(String.Concat(loc, ".config"), sb.ToString());
「sb.toString()」應該是「sb.ToString()」,否則就是完美的答案。謝謝! –
很棒的@RobVermeulen,謝謝!我編輯了答案。 –
這是一半的答案。 – drowa
剛去App.config
文件屬性並更改複製到輸出目錄從設置不要複製到始終複製(或複製如果新)。這將在項目構建期間自動創建配置文件。
如果項目中沒有'App.config',如何創建'myapp.exe.config'? –
@ArtemKyba爲什麼不簡單地將'App.config'添加到項目中? –
客戶希望不添加:) –
當您需要訪問它時,此文件是您的應用程序所需要的。 最好的方法是在你寫它的時候用Visual Studio添加它。您必須確保它在安裝時正確部署在目標機器上。
然後,如果它在運行時不在磁盤上,這是一個很好的行爲崩潰。您可以向用戶顯示一條消息(捕獲異常)。
爲什麼要以其他方式創建它?它是否確保你總是有一個配置文件,即使用戶刪除它?爲什麼用戶會這樣做?哦,沒關係。
如果你想確保總有一個配置文件,你可以自己創建它,如果它不存在:
if (!File.Exists(configFilePath)) ...
配置文件只是XML。所以你可以創建一個新文件,並在你想從中讀取一個密鑰之前用缺省數據填充它。
然而,人們會希望用戶不要刪除配置文件。只是在說'。
這種解決方案總是聞起來像競賽狀況; .NET Framework忽略TxF。 – drowa
爲什麼如果用戶刪除了它,你可以創建配置文件?打開文件之前檢查文件是否存在(或處理異常),如果找不到配置文件,則使用默認值 –
我認爲用戶不會刪除它。文件在開始時不存在。 –
這只是一個文本文件 - 您可以像創建任何其他文本文件一樣創建它。但_proper_方法是在_design time_將其包含在您的項目中。 –