【问题标题】:Dynamically get paths to project-folders in ClickOnce在 ClickOnce 中动态获取项目文件夹的路径
【发布时间】:2014-02-24 16:51:37
【问题描述】:

问题:在 Visual Studio 中使用时,与作为 Clickonce 应用程序安装时相比,Clickonce 会将项目的子文件夹放在不同的位置。

在 Visual Studio 中它们位于:

Directory.GetParent(Environment.CurrentDirectory).Parent

虽然安装后,它们位于:

Environment.CurrentDirectory

虽然我可以检查 Clickonce 的安装(如对 my question here 的回答所示,“作为不是一个真正的问题而关闭”......)我担心这可能会在某个时候中断 - 除非我完全理解 为什么会发生这种情况。

那么,在 Visual Studio 中运行和作为 Clickonce 安装时,获取文件夹路径的正确方法是什么?

【问题讨论】:

    标签: c# .net winforms visual-studio-2010 clickonce


    【解决方案1】:

    如果我正确理解了您的问题,请尝试使用Application.StartupPathApplicationDeployment.CurrentDeployment.DataDirectory,如下所示:

    string startupPath = ApplicationDeployment.IsNetworkDeployed
        ? ApplicationDeployment.CurrentDeployment.DataDirectory :
        : Application.StartupPath;
    

    或者只是Application.StartupPath

    或者只是ApplicationDeployment.CurrentDeployment.DataDirectory

    这取决于“Clickonce 放置项目的子文件夹”的含义

    【讨论】:

    • 谢谢,我得试试这些。至于我的意思,这是一个简单的例子:在我的项目中,我有一个文件夹,Folder1。其中有一个文件Text1.txt,我希望我的应用程序获取它的路径,以便它可以读取它的内容。
    • 如果您在部署包中包含此文件夹,请务必使用 Application.StartupPath
    • 不。安装为 Clickonce 时工作。但在 VS 中执行时不会。
    • (我也在研究如何告诉 Clickonce 它们是数据文件。目前我将这些文件设置为 Build Action = Content 只是因为它是自动完成的。)
    • VS运行时文件夹是否复制到构建输出文件夹中?
    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2021-08-29
    相关资源
    最近更新 更多