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
Introducción Antes de comenzar a hablar del propio titulo, vamos a hacer un índice de los artículos publicados