我在ASP.NET应用程序上使用Visual Studio 2008,该应用程序已部署到测试服务器。我想在没有调试信息的情况下进行生成,但是配置管理器只在我的项目的配置下拉列表中显示“Debug”。
我的其他Visual Studio项目显示“Debug”,“Release”,“New ...”和“Edit ...”。
为什么我看不到发布选项,或新的和编辑命令?
答案 0 :(得分:24)
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),它将显示在配置下拉列表中。但是,选择发布版仍然不会影响网站。
答案 1 :(得分:1)
在查看了最佳答案并在几个小时内解决了这个问题后,我遇到了这个答案。我的解决方案是添加一个完整的应用程序:通常使用一个空的网站,但同样的问题是发布没有显示。我在解决方案中添加了一个完整的应用程序,然后允许我在解决方案中部署我的项目,因为添加完整的应用程序还在下拉列表中添加了“release”选项。我非常感谢这些建议,但不确定为什么这个工具如此古怪。再次感谢您的建议。
答案 2 :(得分:0)
解决方案的配置管理器允许您删除这些默认构建配置中的任何一个(或两个)(通过上面提到的编辑...选项)。我敢打赌有人删除了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
答案 3 :(得分:0)
该过程已更改,您只需在发布过程的设置部分检查2个底部复选框,如图所示。在bin文件夹中,您将找到dll。
希望有所帮助
eiran