Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the project path at Design Time

I use a component (System.ComponentModel.Component) and I want to get the application path of my project in order to create a file within it.

Thx

Florian

like image 928
Florian Avatar asked Mar 11 '10 14:03

Florian


2 Answers

The only thing that seemed to work (consistently) for me was obtaining EnvDTE.DTE (from the IServiceProvider you get from EditValue()), i.e.:

EnvDTE.DTE dte = envProvider.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
string dir = Path.GetDirectoryName(dte.Solution.FullName);

When I tried using Assembly.GetXAssembly, I got the temporary path VS uses in design-time.

like image 83
Omer Ran Avatar answered Nov 06 '22 17:11

Omer Ran


Just call GetMyPath which is defined as

string GetMyPath([CallerFilePath] string from = null)
{
   return from;
}
like image 26
mlg Avatar answered Nov 06 '22 18:11

mlg