2

我有一个有点奇怪的情况。

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

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

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

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

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

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

这是可能的吗,或者任何人都可以为我看到我正在目睹的行为提出不同的理由吗?

[编辑]

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

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

但是,因为我已经回答了我最初的问题,所以我将关闭它,毫无疑问,明天我会更深入地挖掘。

谢谢

4

3 回答 3

2

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

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

然后是预编译的。

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

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

于 2012-04-11T15:28:31.967 回答
0

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

于 2012-04-11T15:29:34.220 回答
-1

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

于 2012-04-11T15:27:52.147 回答