2011-04-29 140 views
26


我有一个项目配置的主要问题。当我想根据现有的“调试”配置添加新的解决方案配置(名为“Dev_WithSource”)并选中“创建项目配置”时,所有事情都开始了。出于某种原因,项目配置在sln文件中注册,在配置管理器中正确显示,但未创建csproj文件中的“PropertyGroup Condition”块。这导致“OutputPath not set ...”错误。Visual studio - 无法删除项目配置

所以,我试图重复整个过程。从sln文件中删除所有提及“Dev_WithSource”的行后,“Dev_WithSource”项目配置仍在配置管理器中显示。我在我的解决方案中搜索了所有csproj和sln文件。它们都不包含“Dev_WithSource”文本。

毕竟我的事件试图开发加载项。我可以使用project.ConfigurationManager.ConfigurationRowNames获取幻影配置,但我也无法删除它们。 我错过了什么吗?这些配置是否存储在其他文件中,而不是csproj/sln?

谢谢。

+0

你尝试删除/重命名相应的.user文件吗? – yms 2011-04-29 13:02:29

+0

这些文件在哪里?我有.suo,.vsscc和5.1.Resharper.User文件,与解决方案文件名称相同。至于项目,我只有csproj和vspscc文件。 – Filip 2011-04-29 16:26:39

回答

2

我用解析csproj文件并将必要的propertygroup块插入csproj文件的实用工具解决了这个问题。旧的项目配置仍然出现在配置管理器中,但我放弃了试图删除它们。

23
  1. 右键单击 - >使用要删除的配置卸载项目。
  2. 右键单击 - >直接编辑项目文件xml。
  3. 删除包含条件的属性组,该条件包含您希望去的平台/配置的名称。
  4. 保存并重新加载项目。不需要的配置应该消失。
  5. 如果配置似乎设置正确,但OutPutPath仍然“未设置”,请尝试在xml中移动其属性组标签。
+2

我希望有一个更简单的方法(也许有),但这是我最终如何做到这一点,不幸的是。 – kd7iwp 2013-08-15 20:46:50

+0

“VS命令for .Net”将步骤1和步骤2变为一步。它还为VS添加了一些其他UI增强功能。很多推荐。 – 2015-01-06 10:04:56

+0

最佳答案!!!! – Gandarez 2016-04-27 14:42:13

47
  1. 访问两种方式中的一种配置管理器:

    1. 从菜单顶部:Build>Configuration Manager...
    2. 从下拉列表主工具栏上的配置选择Configuration Manager...
  2. 在配置管理器对话框un der​​从下拉菜单中选择<Edit...>

    Configuration Manager

  3. 打开一个对话框,显示您的解决方案的所有配置。在这里,您可以选择并点击Remove按钮。

    Edit Solution Configurations

+23

这会从解决方案中删除配置,但不会删除项目“以防它们仍在使用” – stannius 2013-10-28 17:51:41

+6

@stannius您可能想要查看http://stackoverflow.com/questions/491957/how-do-i-remove-a-project-configuration-in-visual-studio-2008 – nawfal 2014-02-06 10:23:25

+0

@stannius从所有项目中删除_Release_:'Get-Project -All | Foreach {$ _。ConfigurationMAnager.DeleteConfigurationRow(“Release”)}' – Alireza 2018-02-24 23:43:27

12

我知道这是一个古老的线程,但是这是我的回答:

在Configuration Manager中,选择“编辑...“,在每个项目的”配置“列中(不是通过名为”活动解决方案配置“的下拉列表),其中包含要删除的配置。

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

How do I remove a project configuration in Visual Studio 2008?

1

首先被复制,在解决方案从所有项目中删除的构建:

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

然后将其删除解决方案如Mike Grim所解释的那样。