使用ClickOnce,文件夾規則比普通的Windows應用程序有所不同。 ClickOnce內容文件部署到的數據文件夾位於c:\ Users \ me \ Local Settings \ Apps \ 2.0 \ Data中。在該文件夾下面有幾個子文件夾級別,具有相當神祕的標識符。
因此,對於給定的ClickOnce應用程序的實際數據文件夾,最好使用ApplicationDeployment類檢索。您也應該檢查IsNetworkDeployed屬性,看看你在部署模式下運行:
if (ApplicationDeployment.IsNetworkDeployed)
{
var dataDirectory = ApplicationDeployment.CurrentDeployment.DataDirectory;
...
}
由於DataDirectory目錄是由ClickOnce的決定也沒有辦法,你可以硬編碼路徑到您的log4net的配置。我的建議是在應用程序啓動時修改文件路徑programmaticaly。
foreach(var appender in LogManager.GetRepository().GetAppenders())
{
var fileAppender = appender as FileAppender;
if (fileAppender != null)
{
fileAppender.File =
fileAppender.File.Replace("${LOCALAPPDATA}", dataDirectory);
fileAppender.ActivateOptions();
}
}
如果這沒有解決您的問題,確保配置文件(如log4net.config)沒有被部署爲「數據文件」 – Pakman 2013-03-20 20:37:06