2014-02-24 101 views
1

问题:当在Visual Studio中使用时,Clickonce将项目的子文件夹放置在不同的位置,并在安装为Clickonce应用程序时将其放置在不同的位置。在ClickOnce中动态获取项目文件夹的路径

在Visual Studio他们下:

Directory.GetParent(Environment.CurrentDirectory).Parent 

虽然安装时,他们下:

Environment.CurrentDirectory 

虽然我可以检查的ClickOnce安装(如图一回答为my question here,“关闭不是一个真正的问题”...)我担心这可能会在某个时候破裂 - 除非我明白为什么发生这种情况。

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

回答

0

如果我理解正确你的问题,尝试使用Application.StartupPathApplicationDeployment.CurrentDeployment.DataDirectory如下:

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

或者只是Application.StartupPath

或者只是ApplicationDeployment.CurrentDeployment.DataDirectory

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

+0

谢谢,我将不得不尝试这些。至于我的意思,这里是一个简单的例子:在我的项目中,我有一个文件夹,“Folder1”。其中有一个文件'Text1.txt',我希望我的应用程序能够获取它的路径,以便它可以读取它的内容。 – ispiro

+0

如果在部署包中包含此文件夹,则肯定使用'Application.StartupPath'。 – Dmitry

+0

没有。作为Clickonce安装时工作。但不是在VS中执行时。 – ispiro

相关问题