我正在尝试使用ClickOnce部署的WinForms应用。它包含一个可执行文件和一个依赖的dll,以及一个名为“Map”的文件夹中的一堆松散的xml文件。 xml文件似乎在生成的clickonce包中都存在且正确,并且都包含在.manifest文件中。
但是,当我安装并运行时,使用以下代码为我提供了一个找不到目录的例外:
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
string mapPath = Path.Combine(appPath, "Maps");
foreach (string xmlFile in Directory.GetFiles(mapPath, "*.xml"))
当我查看“appPath”(即C:\Users\Mark\AppData\Local\Apps\2.0\0H6ZLXXN.30V\3TNO49OJ.8JH\midi..tion_5194807c0e95e913_0000.0004_b9d52c73fd4d58ad\
)时,有app可执行文件和dll,但地图文件夹不存在。
我做错了什么?这是用我的应用程序捆绑额外文件的正确方法吗?我实际上希望Maps文件夹能够让用户轻松访问并添加自己的文件。
答案 0 :(得分:12)
private string GetDataDirectory()
{
if (ApplicationDeployment.IsNetworkDeployed)
{
return ApplicationDeployment.CurrentDeployment.DataDirectory;
}
else
{
return Application.StartupPath;
}
}