2011-04-29 150 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所解釋的那樣。