[HowTo] Agregar Ficheros a un Proyecto Existente - El blog de Javier Torrecilla

[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

Published 15/12/2011 12:18 por Javier Torrecilla
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/jtorrecilla/archive/2011/12/15/howto-agregar-ficheros-a-un-proyecto-existente.aspx

Comentarios

# [HowTo]Agregar Código al Código desde un Addin

Introducción Antes de comenzar a hablar del propio titulo, vamos a hacer un índice de los artículos publicados

Thursday, December 29, 2011 10:07 AM por El blog de Javier Torrecilla