【问题标题】:Location of user files with a ClickOnce application带有 ClickOnce 应用程序的用户文件的位置
【发布时间】:2010-11-15 20:49:40
【问题描述】:

我有一个尝试使用 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\)时,有应用程序可执行文件和 dll,但地图文件夹不存在。

我做错了什么?这是将额外文件与我的应用程序捆绑在一起的正确方法吗?实际上,我希望 Maps 文件夹位于用户可以轻松访问并将自己的文件添加到其中的位置。

【问题讨论】:

    标签: winforms clickonce


    【解决方案1】:

    好的,我最终找到了一个帮助我的代码 sn-p。 xml 文件已经被放入 ClickOnce 的“数据目录”(这可以使用项目设置对话框的发布选项卡上的“应用程序文件”按钮进行配置。然后您可以按如下方式进入数据目录:

        private string GetDataDirectory()
        {
            if (ApplicationDeployment.IsNetworkDeployed)
            {
                return ApplicationDeployment.CurrentDeployment.DataDirectory;
            }
            else
            {
                return Application.StartupPath;
            }
        }
    

    【讨论】:

    • 我希望这更明显。感谢您的修复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多