¿Cómo elimino la configuración de un proyecto en Visual Studio 2008?


97

Tengo una solución de Visual Studio 2008 en la que he importado varios proyectos preexistentes. Los proyectos son código de muestra de lenguaje mixto (C #, VB, C ++ / CLI). Actualmente tienen múltiples configuraciones, pero quiero que cada proyecto solo tenga una única configuración de "depuración".

En el administrador de configuración, eliminé las otras configuraciones (por ejemplo, "Liberar"), pero mientras lo hacía, apareció un mensaje de advertencia que me decía que no se eliminarían de los proyectos individuales.

Y de hecho, cuando navego a un proyecto individual, todavía tiene "Release" y otras configuraciones, aunque en el nivel de la solución solo hay "Debug".

¿Cuál es la mejor manera de eliminar estas configuraciones adicionales de cada proyecto? ¿Estoy pasando por alto alguna forma de hacer esto en la GUI, o debería simplemente editar los archivos del proyecto directamente?

Respuestas:


191

En el Administrador de configuración, seleccione "Editar ..." en la columna "Configuración" para cada proyecto (no a través del menú desplegable denominado Configuración de solución activa) que tiene configuraciones que desea eliminar.

En el cuadro de diálogo que aparece, marque cada configuración no deseada y seleccione "Eliminar".


22
¡Gracias! Deseo que Visual Studio ofrezca una forma más rápida de eliminar una configuración en todos los proyectos. Si tiene una docena de proyectos en una solución, es complicado revisar cada uno de ellos y eliminar manualmente la configuración.
Stefano Ricciardi

1
@Matthias, ruego diferir. Y no, no se ha cambiado (desde que respondí esto en 2009 hasta la versión 2013).
Timbo

1
Si voy al Administrador de configuración, elimino una configuración de solución activa mediante editar, entonces la configuración se elimina del Administrador de configuración. Pero si ahora va a las propiedades de su proyecto, entonces la configuración sigue ahí. Si mira dentro de los archivos .vcxproj, la configuración todavía está allí. Uso Visual Studio 2013 (Professional y Ultimate)
Matthias

1
@Matthias Lea con atención (especialmente la parte de cada proyecto ). Tal vez la elección / orden de palabras en mi respuesta no esté correctamente optimizada para una mejor comprensión, pero eso no cambia si esto funciona o no.
Timbo

1
@Stefano Ricciardi 5 años después, ¿encontraste una solución para tanto dolor?
cppBeginner

10

Para ayudar a ilustrar la respuesta de timbo, esto es de lo que está hablando. Como algunos de los comentaristas, me tomó un tiempo encontrar esto.

ingrese la descripción de la imagen aquí


8

La mejor manera de automatizar la eliminación de una configuración de todos los proyectos de una solución se realiza mediante el comando de la consola Nuget para acceder a las apis de Visual Studio.

Vaya a Herramientas , Nuget Package Manager , Package Manager Console .

Desde allí uso:

Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("Release") }

De esta forma ha eliminado todas las configuraciones de todos los proyectos llamados "Release". Le sugiero encarecidamente que siempre verifique las diferencias en su sistema de control de versiones de código fuente, solo verá csprojy en algunos casos los slnarchivos afectados, si está utilizando transformaciones de configuración (como Web.Release.config), todavía estarán allí.

Hay más información disponible en la documentación de la API específica de la versión de Visual Studio aquí , esto funciona al menos desde VS 2015 para los lenguajes C ++, C #, F #, VB.


¿Puede proporcionar alguna referencia, por ejemplo, cómo se le ocurrió este código? ¿Hay algún tutorial? Quiero asegurarme de que no romperá mi proyecto, ser capaz de mantenerlo yo mismo y probablemente usarlo para otras cosas.
javaLover

¡Gracias! Noté que el árbol del tema (parte superior de la página) en su enlace es Docs > .NET > ... > DeleteConfigurationRow. ¿Funciona solo para la solución .net? ¿También lo probó para la solución C ++?
javaLover

No funcionó en VS2019 en mi solución C ++: se ha devuelto el error HRESULT E_FAIL de una llamada a un componente COM. En la línea: 1 carácter: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Import ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL ha sido devuelto desde una llamada a un COM componente. En la línea: 1 carácter: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry

Funcionó bien para mí, solución de proyectos C ++. ¡Gracias por el consejo!
Mainframe nórdico

3

No responde a esta pregunta en particular que sé, pero con VS2013 puede abrir la pestaña Administrador de propiedades, expandir todas las configuraciones del proyecto, hacer una selección múltiple usando las teclas CTRL o MAYÚS y eliminar configuraciones de múltiples proyectos a la vez.


¿Es esto solo para proyectos de C ++? Supongo que la pestaña a la que se refiere es 'Ver> Otras ventanas> Administrador de propiedades'.
Steven Anderson

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.