如何在设计时获取项目路径

Flo*_*ian 5 c# components design-time path

我使用一个组件(System.ComponentModel.Component),我想获取我的项目的应用程序路径,以便在其中创建一个文件.

谢谢

弗洛里安

小智 5

对我来说似乎(始终如一)唯一有效的是获取 EnvDTE.DTE(从您从 EditValue() 获得的 IServiceProvider),即:

EnvDTE.DTE dte = envProvider.GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE;
string dir = Path.GetDirectoryName(dte.Solution.FullName);
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 Assembly.GetXAssembly 时,我得到了 VS 在设计时使用的临时路径。


sas*_*eve 0

使用AppDomain.CurrentDomain.BaseDirectory。

  • 这是行不通的。当我拖动具有此方法的组件时: public override void InitializeNewComponent(IDictionary defaultValues) { MessageBox.Show(AppDomain.CurrentDomain.BaseDirectory); 出现消息框:C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\ (2认同)