[HowTo] Agregar Ficheros a un Proyecto Existente

Introducción

Siguiendo con la serie de post de extensibilidad que he estado escribiendo, vamos a ver en este artículo como agregar ficheros a un proyecto existente.

Agregar Ficheros

En este apartado vamos a ver como agregar ficheros nuevos o ficheros ya existentes.

Ficheros Nuevos

Al igual que existen plantillas predefinidas para proyectos, podemos encontrar plantillas de tipos de elementos agregables a un proyecto.

Para poder explorar el conjunto de plantillas existentes, dentro del directorio de instalación de Visual Studio, encontraremos la carpeta ItemTemplates, con los distintos lenguajes, instalados para poder consultar sus elementos.

 

   1: var solution = (Solution2)_applicationObject.Solution;

   2: var project = (Project)solution.Projects.Item(GetProject());

   3: var template = solution.GetProjectItemTemplate("Class.zip", "CSharp");

   4: var temp = project.ProjectItems.AddFromTemplate(template, "MyNewClass.cs");

El fragmento de código anterior está incluido en el evento click de una opción de menú de nuestro Addin.

El objeto Solution2 dispone del método GetProjectItemTemplate, que a través del nombre de la plantilla y el lenguaje a utilizar, nos va a permitir obtener el nombre de la plantilla para su importación.

A través del método AddFromTemplate de la colección ProjectItems del proyecto seleccionado, vamos a definir la plantilla obtenida y asignaremos el nombre de nuestro nuevo fichero.

Ficheros existentes

Existen dos formas de agregar un fichero existente a un proyecto:

– Como una copia

– De forma vinculada

1) Como una copia:

Se creará una copia del fichero deseado en la carpeta del proyecto y se agregará al mismo.

Para realizar este proceso bastaría con ejecutar el siguiente fragmento de código:

   1: string file = string.Empty;

   2: using (OpenFileDialog opd = new OpenFileDialog())

   3: {

   4:     if (opd.ShowDialog() == DialogResult.OK)

   5:     {

   6:         file = opd.FileName;

   7:         var solution = (Solution2)_applicationObject.Solution;

   8:         var project = (Project)solution.Projects.Item(GetProject());

   9:         project.ProjectItems.AddFromFileCopy(file);

  10:     }

  11: }

A través del cuadro de Abrir Fichero (OpenFileDialog) vamos a elegir un fichero existente, y lo agregaremos como una copia al proyecto seleccionado a través del método AddFromFileCopy.

2) De forma vinculada:

La segunda forma de agregar un fichero existente a un proyecto es a través de un Vinculo. Visual Studio establecerá un vinculo al fichero existente sin copiarlo en el directorio del proyecto. Esto puede generar problemas si el fichero se mueve o se elimina, provocando que el enlace se pierda.

El código va a ser muy similar al anterior, con la salvedad que en lugar de utilizar el método AddFromFileCopy se va a utilizar el método AddFromFile.

 

   1: string file = string.Empty;

   2: using (OpenFileDialog opd = new OpenFileDialog())

   3: {

   4:     if (opd.ShowDialog() == DialogResult.OK)

   5:     {

   6:         file = opd.FileName;

   7:         var solution = (Solution2)_applicationObject.Solution;

   8:         var project = (Project)solution.Projects.Item(GetProject());

   9:         project.ProjectItems.AddFromFile(file);

  10:     }

  11: }

 

Espero que os sea de utilidad.

 

Saludos

Un comentario en “[HowTo] Agregar Ficheros a un Proyecto Existente”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *