【问题标题】:Configuration Manager only shows Debug配置管理器仅显示调试
【发布时间】:2010-09-20 12:48:14
【问题描述】:

我正在使用 Visual Studio 2008 开发一个已部署到测试服务器的 ASP.NET 应用程序。我想在没有调试信息的情况下进行构建以投入生产,但配置管理器仅在我的项目的配置下拉列表中显示“调试”。

我的其他 Visual Studio 项目显示“Debug”、“Release”、“New...”和“Edit...”。

为什么我看不到发布选项或新命令和编辑命令?

【问题讨论】:

  • 这个问题你解决了吗
  • @MonsterMMORPG 细节已经褪色,几乎是十年前的事了。祝你好运。

标签: visual-studio visual-studio-2008 configuration build-environment


【解决方案1】:

ASP.NET 网站不使用配置管理器来确定调试信息是否包含在编译中。您必须在web.config 文件中设置它。据我所知,Visual Studio 永远不会自动将调试更改为“false”。

在您的web.config 文件中找到此部分并将其更改为“false”:

<!--
    Set compilation debug="true" to insert debugging
    symbols into the compiled page. Because this
    affects performance, set this value to true only
    during development.
-->

<compilation debug="true">

如果您在 IDE 中运行您的网站,Visual Studio 会询问您是否希望将其从 false 更改为 true,但不幸的是,它不会为发布做相反的事情(这对我来说似乎更重要)。

如果您的解决方案中有多个项目,并且其中至少有一个支持发布配置(例如 DLL) - 它会出现在配置下拉列表中。但是,选择 Release 进行构建仍然不会影响网站。

【讨论】:

  • 我更改了我的 WCF 服务项目的 web.config,但在我的下拉列表中仍然看不到“发布”。还需要其他步骤吗?
  • @slartidan 如果您设置 debug="false",这就是您需要做的所有事情。下拉菜单无关紧要。
  • PS:在我的 Visual Studio 解决方案文件中,我必须将“网页”更改为“项目”才能查看和使用“发布”和“调试”。我需要它来进行 web.config 转换。
  • 这与出版不同
【解决方案2】:

在查看了最佳答案并与这个问题搏斗了几个小时后,我遇到了这个答案。我的解决方案是添加一个完整的应用程序:通常使用一个空的网站,但同样的问题是发布不显示。我向解决方案添加了一个完整的应用程序,然后它允许我在解决方案中部署我的项目,因为添加完整的应用程序还在下拉列表中添加了“发布”选项。我非常感谢这些建议,但不确定为什么这个工具如此古怪。再次感谢您的建议。

【讨论】:

    【解决方案3】:

    解决方案的配置管理器允许您删除这些默认构建配置中的一个(或两个)(通过上面提到的编辑...选项)。我敢打赌,有人删除了 Release 配置。

    您可以通过重新创建它来恢复它,或者从您从头开始制作的解决方案中复制适当的行,非常快速。文件差异显示以下内容:

    默认解决方案文件:

    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    

    我手动删除Release配置后的解决方法:

    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {EDD50911-B94E-49A4-A08B-A2E91228A04B}.Debug|Any CPU.Build.0 = Debug|Any CPU
    EndGlobalSection
    

    【讨论】:

    • 感谢您的建议。我的解决方案文件仍然有两行要发布,所以这不是问题。
    • 反过来看,“将这些行添加到 .sln 文件是否会导致这些配置显示在 VS 中的项目中?”答案是不。 VS(至少 2015 年)不会对配置管理器窗口中的项目使用这些名称,除非项目文件具有相应的 PropertyGroup 并附加条件:&lt;PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MyConfigName|x86'" /&gt;。配置名称必须是文字,并且必须在项目文件中,而不是导入的目标文件中。
    【解决方案4】:

    过程已更改,您只需在发布过程的设置部分选中底部的 2 个复选框,如图所示。在 bin 文件夹中,您将找到 dll。

    希望对你有帮助

    伊然

    【讨论】:

    • 这并没有解决我的问题
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多