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

我的其他 Visual Studio 项目显示“调试”、“发布”、“新建...”和“编辑...”。

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

有帮助吗?

解决方案

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”选项。我非常感谢这些建议,但不确定为什么这个工具如此古怪。再次感谢您的建议。

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

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

默认解决方案文件:

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

手动删除发布配置后的解决方案:

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

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

希望有所帮助

eiran

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top