为啥 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 使用源代码发布网站?