如何在Visual Studio 2008中删除项目配置?


97

我有一个Visual Studio 2008解决方案,其中导入了许多预先存在的项目。这些项目是混合语言示例代码(C#,VB,C ++ / CLI)。它们当前具有多个配置,但是我希望每个项目仅具有一个“调试”配置。

在配置管理器中,我删除了其他配置(例如,“发布”),但是当我这样做时,有一条警告消息告诉我,它们不会从单个项目中删除。

确实,当我导航到单个项目时,即使在解决方案级别只有“ Debug”,它仍然具有“ Release”和其他配置。

如何最好地从每个项目中删除这些额外的配置?我是否在某种程度上忽略了在GUI中执行此操作的方式,还是应该直接编辑项目文件?

Answers:


191

在配置管理器中,为每个要删除其配置的项目(不通过名为“活动解决方案配置”的下拉菜单)在“配置”列中选择“编辑...” 。

在弹出的对话框中,标记每个不需要的配置,然后选择“删除”。


22
谢谢!我希望Visual Studio提供一种更快的方法来删除所有项目中的配置。如果您在解决方案中有十几个项目,那么遍历每个项目并手动删除配置是很痛苦的。
Stefano Ricciardi,

1
@Matthias,我希望与众不同。不,它没有改变(从我在2009年回答这个问题到2013年版本)。
Timbo,2014年

1
如果我转到配置管理器,请通过编辑删除活动的解决方案配置,然后将该配置确实从配置管理器中删除。但是,如果现在转到项目的属性,则配置仍然存在。如果查看.vcxproj文件内部,则配置仍然存在。我使用Visual Studio 2013(专业版和旗舰版)
Matthias

1
@Matthias仔细阅读(尤其是每个项目的部分)。也许我的答案中的“选择/顺序”一词没有得到最佳的最佳理解性优化,但这无论是否有效都不会改变。
Timbo 2014年

1
@Stefano Ricciardi 5年后,您找到解决此类疼痛的方法了吗?
cppBeginner

10

为了帮助说明timbo的答案,这是他在说什么。像一些评论者一样,我花了一段时间才找到它。

在此处输入图片说明


8

自动化从解决方案的所有项目中删除配置的最佳方法是使用Nuget控制台命令访问Visual Studio API。

转到工具Nuget程序包管理器程序包管理器控制台

从那里使用:

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

这样,您已从名为的所有项目中删除了所有配置"Release"。我强烈建议您始终检查源代码版本控制系统上的差异,您只会看到csproj,在某些情况下sln受影响的文件,如果您使用的是配置转换(如Web.Release.config),它们仍然会存在。

有关Visual Studio版本特定的api文档的更多信息,请参见此处,至少在VS 2015中适用于C ++,C#,F#,VB语言。


您能否提供一些参考,例如如何编写此代码?有教程吗?我想确保它不会破坏我的项目,能够自己维护它,并可能将其用于其他用途。
javaLover

谢谢!我注意到您链接中的主题树(页面顶部)是Docs > .NET > ... > DeleteConfigurationRow。它仅适用于.net解决方案吗?您是否还针对C ++解决方案对其进行了测试?
javaLover

在我的C ++解决方案上的VS2019中不起作用:从COM组件的调用返回了错误HRESULT E_FAIL。行:1字符:30 + ... | Foreach {$ _。ConfigurationManager.DeleteConfigurationRow(“ DLL-Impor ... + CategoryInfo:OperationStopped:(:) [],COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException错误HRESULT E_FAIL已从对COM的调用返回行:1 char:30 + ... | Foreach {$ _。ConfigurationManager.DeleteConfigurationRow(“ DLL-Impor ...
Terry

对我来说,C ++项目的解决方案工作得很好。谢谢你的提示!
北欧大型机

3

我无法回答这个特定问题,但是使用VS2013,您可以打开“属性管理器”选项卡,展开所有项目配置,使用CTRL或SHIFT键进行多项选择,然后一次从多个项目中删除配置。


这仅适用于C ++项目吗?我猜您所指的标签是“视图”>“其他Windows>属性管理器”吗?
史蒂文·安德森

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.