Toon posts:

[VS2005]Designtime solution file localiseren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een component dat designtime, op het moment dat 'ie op een form gedropt wordt een stuk sourcecode moet genereren en die file aan het huidig actieve project moet toevoegen.
Alleen kom ik er met geen mogelijkheid achter wat het huidige project is, en waar deze te vinden is...

Ik kan wel bij de DesignerHost, het form waar 't om gaat (RootComponent van de host), etc. maar 't is me tot nu toe niet gelukt om te achterhalen waar de source van het huidige project staat.

Iemand een lumineus idee?

Verwijderd

Topicstarter
Gevonden.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
    private string GetProjectDirectory()
    {
      string result = "";
      EnvDTE80.DTE2 devenv = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0");
      Array projects = (System.Array)devenv.ActiveSolutionProjects;
      if (projects.Length != 0)
      {
        EnvDTE.Project project = (EnvDTE.Project)(projects.GetValue(0));
        FileInfo info = new FileInfo(project.FullName);
        result = info.DirectoryName;
      }
      return result;
    }

Nog niet helemaal perfect, als je bv. meerdere VS's open hebt kan 'ie de verkeerde kiezen, maar daar kom ik wel uit. :)

Edit: dit is de MSDN startpagina voor de EnvDTE80 namespace. Ik ben nog nooit zoveel "Microsoft Internal Use Only" descriptions tegengekomen als hier en in de onderliggende pagina's... :D

[ Voor 16% gewijzigd door Verwijderd op 17-08-2006 21:53 ]