5

我的网站运行良好,但是当我通过 Build > Publish Web Site [重新] 发布它时,它说它处于调试配置中。我认为它应该是别的东西,比如“发布”,但在“工具”菜单下方的下拉列表中,我无法使用该选项 - “调试”是唯一可用的选项。注意:我确实在 web.config 中将调试设置为 false。

如果我单击配置下拉菜单,它确实有一个“配置管理器”菜单项,但这只是打开了同名对话框,并且该对话框上网格中的项目“记录”具有相同的内容 - 配置下拉菜单“调试”作为其唯一选项。

平台设置为“任何 CPU”(这是一个 ASP.NET 站点/应用程序),选中了 Build 复选框,没有选中了 Deploy(并且不会让我检查它,大概是因为 Configuration == Debug)。

那么如何将我的项目/站点更改为发布模式?

更新

好吧,这看起来很奇怪。根据 Arma 的评论/建议,我搜索了 *.sln 文件;我在 C:\Users\Clay\Visual Studio 2012\Projects\ 中找到了 .sln,但 C:\ 是项目实际保存的位置。

然而,那里的 *.sln 文件确实有今天的最后修改日期。为什么 .sln 在一个地方,项目在另一个地方,但两个地方的文件都在更新?

更新 2

应 Arma 的要求/要求,这里是解决方案资源管理器的尖叫声(无论如何,大部分都是):

在此处输入图像描述

更新 3

似乎 Visual Studio 已将我的项目文件分散在两个不同的位置 - 它是首选/默认位置(C:\Users\Clay\Visual Studio 2012\Projects\)以及我指定要创建的项目的位置(我创建的根目录下的文件夹)。如果这就是我遇到这个奇怪问题的原因(调试是我唯一的配置选项),我需要知道如何纠正它,以及将来如何避免它。尽快(明天)我会提出这个问题。如果有人在他们之前回答它,我将产生事后赏金并将其奖励给他们。

4

4 回答 4

5

发布配置文件中的构建配置对网站项目无关紧要,它只对 Web 应用程序项目重要。请参阅http://msdn.microsoft.com/en-us/library/dd465337.aspx

“此设置对网站项目没有任何影响。对于网站项目,您将看到 Debug 列为构建配置,但在动态编译网站项目时没有任何影响。有关详细信息,请参阅Web Visual Studio 中的应用程序项目与网站项目。”

于 2013-09-07T17:44:01.760 回答
3

您的解决方案和项目文件位于不同的位置并不重要。要解决这个问题,只需移动您的解决方案文件并通过更新项目文件的路径来编辑其 XML。

我认为您正在寻找的答案是发布发布配置的方法,其中 web.config 使用 debug="false" 部署。那是对的吗?

您是否尝试在 Configuration Manager 中添加新的发布配置?这应该在您的 Web.config 文件下生成一个 Web.Release.config 转换文件(如果没有,则右键单击 Web.config 并选择添加配置转换)。然后查看使用转换语法 ( http://msdn.microsoft.com/en-us/library/dd465326.aspx ) 来准确定义您希望部署的 Web.config 发布版本包含的内容。您的 Web.Release.config 将如下所示:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.web>
        <compilation debug="false" xdt:Transform="Replace" />
    </system.web>
</configuration>

PS我喜欢“尖叫声”的概念:)

于 2013-09-05T09:51:55.723 回答
3

您可以从选项中启用此功能以在 Visual Studio 解决方案资源管理器中显示解决方案

Tools -> Options -> Projects & Solutions ->General-> check the checkbox "Always show solution" 

然后right click the solutionFile in SolutionExplorer -> Choose OpenFolder in windows Explorer 打开确切的解决方案文件。在进行任何更改之前,请确保保留解决方案文件的备份文件。现在编辑解决方案文件,查找以下部分,然后添加为后部分。

前:

GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
                EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Debug|Any CPU.Build.0 = Debug|Any CPU

    EndGlobalSection

后:

GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {97A7F977-AF9D-494E-AB65-32CCB9A06F30}.Release|Any CPU.Build.0 = Release|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {8C498C19-A5BB-41A2-BA03-B2DC384EB605}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection

这里“97A7F977-AF9D-494E-AB65-32CCB9A06F30”“8C498C19-A5BB-41A2-BA03-B2DC384EB605”是ProjectIds,这在你的情况下可能会有所不同。在这种情况下,我的解决方案中只有2个项目。您必须为此解决方案中的每个项目执行此操作。希望这可以帮助。

于 2013-09-05T09:48:20.127 回答
2

我不确定,但在您的项目文件夹中打开 Web.config 并将 debug="true" 更改为 debug="false" 然后保存并上传它。行得通吗?!如果它不起作用,请在此处写下您的错误以获取更多建议。(我很抱歉我的英语不好)。. . . 我忘记了!打开您的项目 .sln 文件并双击解决方案资源管理器上的“我的项目”,然后选择左侧的编译,然后在顶部选择您的配置模式

于 2013-09-02T20:20:58.457 回答