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

时间:2012-04-11 15:22:57

标签: c# asp.net

我有点奇怪的情况。

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

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

我下载了那段代码,在VS2010中打开它,转换它就没事了。但是,当我运行代码时,我从aspx页面得到编译时错误,他们在那里调用代码中不存在的属性。 (根据Find In Files,整个解决方案,

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

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

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

这是可能的,还是有人可以提出一个不同的理由让我看到我正在目睹的行为?

[编辑]

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

  • 我收到了网站上的所有代码。
  • 在服务器上,代码可以正常工作。

然而,正如我原来的问题得到回答的那样,我会关闭这个,毫无疑问,明天我会更深入地挖回来。

由于

3 个答案:

答案 0 :(得分:2)

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

  • 如果他们在Assembly=指令中指定了@Page
  • 或页面大小为1KB,带有一些“占位符”文本

然后它是预编译的。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

在你的位置,我会通过一些装配浏览器检查装配,比如ILSpy。然后你可以看到里面有什么,以及它与你的代码文件有什么不同。