asp.net 网站 - 我可以判断它是否已预编译

本文关键字:是否 编译 判断 net 网站 我可以 asp | 更新日期: 2023-09-27 18:30:41

我的情况有点奇怪。

我的一个客户在专用服务器上有一个 Asp.net(框架的 v2)站点。

他们要求我对代码进行一些更改,因为他们的开发人员已经离开了。显然,最新版本在服务器上。

我下载了该代码,在VS2010中打开它,转换了它,它很好。但是,当我运行代码时,我从 aspx 页收到编译时错误,它们在其中调用代码中不存在的属性。(根据在文件中查找,整个解决方案,

所以我做了一些挖掘。在 Bin 文件中有一个网站的程序集。在服务器上,这超过 300k。在我的机器上,这是 180k。

我接受这可能只是后来的编译器更好地打包代码,但如果这显示为 120k 的改进,我会感到惊讶。

所以我唯一能想到的是,在某些时候他做了一些更改并编译了网站,但没有先删除所有旧的.cs文件。

这是否可能,或者任何人都可以提出我看到我目睹的行为的不同原因?

[编辑]

好的,它没有预编译,所以我真的很难理解现在发生了什么。

  • 我有网站上的所有代码。
  • 在服务器上,代码有效。

但是,由于我已经回答了我原来的问题,我将关闭它,毫无疑问,明天当我挖得更深时再回来。

谢谢

asp.net 网站 - 我可以判断它是否已预编译

最简单的方法是查看aspx页面:

  • 如果他们具有@Page指令中指定的Assembly=
  • 或者页面大小为 1KB,带有一些"占位符"文本

然后对其进行预编译。

在第一种情况下,它是"部分编译的"(相当于"可更新的",即您可以更改一些内容)。在后一种情况下,它是"完全编译的"。

此外,也许最值得注意的是,没有代码文件(*.vb、*.cs等) - 因为无论编译模式如何(如果有编译),它们都会被编译成二进制文件。如果源文件都在那里,那么你很可能有一个未编译的解决方案 - 或者一个非常非常奇怪的项目设置。

可能还有其他解释。例如,其中之一是以前的开发人员使用了版本控制软件,并且没有添加他/她使用的所有文件,这就是您下载的内容,即某些文件实际上丢失了。

在你的位置上,我会通过一些汇编浏览器(如 ILSpy)检查程序集。然后,您可以查看其中的内容以及它是否与您的代码文件不同。