为啥 Visual Studio 从我发布的 ASP.net 项目中省略“.compiled”文件?

Posted

技术标签:

【中文标题】为啥 Visual Studio 从我发布的 ASP.net 项目中省略“.compiled”文件?【英文标题】:Why does Visual Studio omit ".compiled" files from my published ASP.net project?为什么 Visual Studio 从我发布的 ASP.net 项目中省略“.compiled”文件? 【发布时间】:2014-04-18 14:21:33 【问题描述】:

我继承了一个凌乱的 ASP.net Web 应用程序。上周,我们应该第一次将应用程序的更改推送到生产系统。

没问题,对吧?只需按照通常的步骤操作即可!

此项目已在过去发布过,并开启了预编译。

我使用保存在 Team Foundation Server 中的完全相同的发布配置文件发布了项目。我将它发送给可以访问生产系统的 A 先生。第二天,他们告诉我它不起作用。它在我的开发环境中运行良好!

先生。 A 告诉我,经过仔细检查,他注意到在旧版本中,bin 文件夹包含许多带有 .compiled 扩展名的文件。在新版本中,唯一带有.compiled 扩展名的文件是global_asax.compiled。我检查了设置,它清楚地说它正在使用预编译发布,那么为什么我的发布目录中缺少所有这些文件?

此外,这可能相关也可能不相关,确切的错误消息表明该网站无法从资源文件中读取。该项目是 ASP.net WebForms,而不是 MVC。

【问题讨论】:

【参考方案1】:

您需要确保'允许预编译的网站可更新'未选中

这会将前端的aspx、ascx等代码页编译成*.copiled到/bin文件夹中。

【讨论】:

我认为我们正在做一些事情。当我遵循您的建议并取消选中该框时,我在预编译时收到与网页本身相同的错误!该错误表明它无法在资源文件中找到任何内容!为什么会这样?我所有的资源文件都在一个名为App_GlobalResources 的文件夹中,它们清楚地包含错误消息指示丢失的键。对于一些自定义控件,我还收到了一些 Unknown Server Tag 错误。 在代码页中有一个对控件的引用,编译器可以为其确定正确的程序集。像<asp: 一样,您可以在 web.config 中添加自定义控件定义。 ***.com/questions/19904141/…

以上是关于为啥 Visual Studio 从我发布的 ASP.net 项目中省略“.compiled”文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 编译器无法找到某些头文件而 intellisense 可以?

如何从我的 Visual Studio 静态代码分析中排除库头?

为啥 Visual Studio 2010 使用源代码发布网站?

为啥Visual Studio这么垃圾?

为啥发布运行的代码与在 Visual Studio 中运行不同

为啥 Visual Studio 经常崩溃?