2009-10-11 24 views
32

Finalmente descubrí que Visual Studio realiza un seguimiento de cómo crea un proyecto (en otras palabras, qué plantilla de proyecto selecciona inicialmente) y filtra sus opciones más adelante en función de esa decisión inicial. La información se guarda en el archivo * .csproj como un elemento <ProjectTypeGuids>.¿Cómo cambiar un tipo de proyecto de Visual Studio?

Además de simplemente editar el archivo * .csproj, ¿existe una forma "correcta" de cambiar un tipo de proyecto para un proyecto existente?

Considerando la importancia de esa configuración, parece probable que haya un lugar en la GUI para cambiarla, pero no pude encontrarla. ¡Gracias!

Respuesta

6

¿Por qué quiere cambiar esto?

Simplemente agregaría otro proyecto a la solución con el que desea, mover los archivos y luego eliminar el proyecto original.

+4

clic derecho en un proyecto y abrir el menú "Añadir". ¿Qué opciones tienes? Si no crea el proyecto utilizando una de las plantillas de WPF, no tendrá opciones como "Control de usuario" o "Diccionario de recursos" como opciones. Si no comenzó como un proyecto de WPF, ni siquiera tendrá "Diccionario de recursos" como opción en "Nuevo elemento ...". He hecho la mezcla que describes, que es un dolor si hay muchos elementos y todo está bajo control de versiones. Todo eso para simplemente cambiar el tipo de proyecto parece tonto. –

+6

@Scott: Puede parecer una tontería, pero podría haber más para un "tipo de proyecto" que solo el GUID en la propiedad . Dado que el archivo del proyecto en sí está definido por la plantilla que utilizó cuando creó el proyecto, puede (y debería) encontrar otras diferencias, como diferentes s de archivos .targets y similares. Si no desea hacer el cambio de orden aleatorio, al menos debe crear un proyecto vacío del tipo que desea y diferir el archivo del proyecto contra un proyecto vacío del tipo que tiene. Además de , realice también cualquier otro cambio relevante. – JaredReisinger

+0

haciendo un nuevo proyecto es bueno. pero si quieres darle el mismo nombre al proyecto nuevo, tendrías problemas. aquí es una solución fácil, haga clic derecho en el proyecto y seleccione "descargar proyecto", luego "eliminar", luego haga clic derecho en la solución y seleccione "Abrir carpeta en el Explorador de archivos", luego encuentre la carpeta del proyecto y renómbrela a otra cosa. crea un nuevo proyecto con el nombre que deseas y copia los elementos existentes allí. también para incluir archivos existentes en un nuevo proyecto puede agregar un elemento existente (shift + alt + A). –

17

Corrección pequeña: Visual Studio no realiza un seguimiento de la plantilla de proyecto utilizada para crear un proyecto. El sistema del proyecto desconoce en gran medida la plantilla inicial utilizada para un proyecto. Hay varios elementos en el sistema del proyecto (tipo de proyecto, por ejemplo) que tienen el mismo nombre que las plantillas específicas, pero esto es una coincidencia y los dos no se corrigen definitivamente.

Lo único que realmente se puede cambiar en términos del tipo de proyecto es esencialmente el tipo de salida. Esto puede tener valor Biblioteca de clases, Aplicación de consola y Aplicación de Windows. Puede cambiar esto yendo a la página de propiedades del proyecto (haga clic con el botón secundario en Propiedades) y cambie el cuadro combinado de Tipo de salida.

Es posible que otros tipos de proyectos sean compatibles con el sistema del proyecto, pero son bastante pocos y no están asociados definitivamente con una plantilla de proyecto.

+8

Tiene razón en que VS no recuerda qué plantilla específica se usó para crear el proyecto, pero clasifica absolutamente el proyecto como de un tipo particular basado en la información en esa plantilla y aparentemente no hay una IU para repararlo una vez creado. Vea mi comentario a Daniel arriba para un ejemplo de los efectos de esta elección. Cuando escribí mi pregunta original, mencioné el elemento XML en el que está almacenada la información, pero veo que el sistema StackOverflow lo eliminó. Lo editaré de nuevo, pero es el elemento <ProjectTypeGuids> en el archivo * .csproj que almacena el tipo de proyecto. –

+0

@JaredPar - ¡Gracias, hace tiempo que me he preguntado cómo hacer esto y tu solución ha funcionado para mí! –

Cuestiones relacionadas