Como faço para remover uma configuração de projeto no Visual Studio 2008?

97

Eu tenho uma solução Visual Studio 2008 para a qual importei vários projetos pré-existentes. Os projetos são códigos de amostra de idioma misto (C #, VB, C ++ / CLI). Atualmente, eles têm várias configurações, mas quero que cada projeto tenha apenas uma única configuração de "Depurar".

No gerenciador de configuração, apaguei as outras configurações (por exemplo, "Release"), mas ao fazer isso, houve uma mensagem de aviso informando que elas não seriam apagadas dos projetos individuais.

E de fato quando eu navego para um projeto individual, ele ainda tem "Release" e outras configurações, embora no nível da solução haja apenas "Debug".

Qual é a melhor maneira de remover essas configurações extras de cada projeto? Estou esquecendo alguma maneira de fazer isso na GUI ou devo apenas editar os arquivos do projeto diretamente?

Eric
fonte

Respostas:

191

No Gerenciador de configuração, selecione "Editar ..." na coluna "Configuração" para cada projeto (não por meio da lista suspensa chamada Configuração de solução ativa) que possui configurações que deseja remover.

Na caixa de diálogo que aparece, marque cada configuração indesejada e selecione "Remover".

Timbó
fonte
22
Obrigado! Gostaria que o Visual Studio oferecesse uma maneira mais rápida de remover uma configuração em todos os projetos. Se você tiver uma dúzia de projetos ou mais em uma solução, é uma dor passar por cada um deles e excluir manualmente a configuração.
Stefano Ricciardi
1
@Matthias, discordo. E não, não mudou (desde quando respondi em 2009 até a versão 2013).
Timbó
1
Se eu for para o Configuration Manager, excluir uma configuração de solução ativa por meio de edição, então a configuração será removida do Configuration Manager. Mas se você agora for para as propriedades do seu projeto, a configuração ainda estará lá. Se você olhar dentro dos arquivos .vcxproj, então a configuração ainda está lá. Eu uso o Visual Studio 2013 (Professional e Ultimate)
Matthias
1
@Matthias Leia com atenção (especialmente a parte de cada projeto ). Talvez a escolha / ordem das palavras em minha resposta não esteja otimizada adequadamente para melhor compreensão, mas isso não muda se isso funciona ou não.
Timbó
1
@Stefano Ricciardi 5 anos depois, você encontrou uma solução para tanta dor?
cppBeginner de
10

Para ajudar a ilustrar a resposta do timbó, aqui está o que ele está falando. Como alguns dos comentadores, demorei um pouco para encontrar isso.

insira a descrição da imagem aqui

Tom Winter
fonte
8

A melhor maneira de automatizar a remoção de uma configuração de todos os projetos de uma solução é feita usando o comando do console do Nuget para acessar o visual studio apis.

Vá para Ferramentas , Gerenciador de pacotes Nuget , Console do gerenciador de pacotes .

A partir daí, use:

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

Desta forma, você removeu todas as configurações de todos os projetos chamados "Release". Eu sugiro fortemente que você sempre verifique as diferenças em seu sistema de controle de versão de código-fonte, você verá apenas csproje em alguns casos os slnarquivos afetados, se você estiver usando transformações de configuração (como Web.Release.config), eles ainda estarão lá.

Mais informações estão disponíveis na documentação da API específica da versão do Visual Studio aqui , isso funciona pelo menos a partir do VS 2015 para linguagens C ++, C #, F #, VB.

Giulio Caccin
fonte
Você pode fornecer alguma referência, por exemplo, como você criou este código? Existe algum tutorial? Eu quero ter certeza de que não vai quebrar meu projeto, ser capaz de mantê-lo sozinho e provavelmente usá-lo para outras coisas.
javaLover
Obrigado! Reparei que a árvore do tópico (topo da página) no seu link é Docs > .NET > ... > DeleteConfigurationRow. Funciona apenas para solução .net? Você também o testou para a solução C ++?
javaLover
Não funcionou em VS2019 em minha solução C ++: Erro HRESULT E_FAIL foi retornado de uma chamada para um componente COM. Na linha: 1 char: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Erro HRESULT E_FAIL foi retornado de uma chamada para um COM componente. Na linha: 1 caractere: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry
Funcionou bem para mim, solução de projetos C ++. Obrigado pela dica!
Nordic Mainframe
3

Não responde a esta pergunta específica que eu sei, mas com VS2013 você pode abrir a guia Gerenciador de Propriedades, expandir todas as configurações do projeto, fazer várias seleções usando as teclas CTRL ou SHIFT e excluir configurações de vários projetos de uma vez.

escocês
fonte
Isso é apenas para projetos C ++? Suponho que a guia à qual você está se referindo é 'Exibir> Outras janelas> Gerenciador de propriedades'.
Steven Anderson,
1

No VS2017 / VS2019, se você selecionar "Configuração da solução ativa", há um <edit> que permite remover uma configuração de todos os projetos.

Captura de tela mostrando <edit>

PolicyWatcher
fonte