簡體   English   中英

asp.net網站-是否可以預編譯?

[英]asp.net website - Can I tell if it has been precompiled?

我的情況有點奇怪。

我的一位客戶在專用服務器上擁有一個Asp.net(框架的v2)站點。

他們要求我在開發人員離開時對代碼進行一些更改。 顯然最新版本在服務器上。

我下載了該代碼,在VS2010中將其打開,對其進行了轉換,一切都很好。 但是,當我運行代碼時,我從aspx頁面得到了編譯時錯誤,它們在其中調用代碼中不存在的屬性。 (根據“在文件中查找”,整個解決方案,

所以我做了一些挖掘。 在Bin文件中,有一個網站的程序集。 在服務器上,超過30萬。 在我的機器上是180k。

我接受這可能僅僅是因為以后的編譯器會更好地打包代碼,但是如果這顯示出120k的改進,我將感到驚訝。

因此,我唯一能想到的是,在某個時候,他進行了一些更改並編譯了網站,但沒有首先刪除所有舊的.cs文件。

這是否可能,或者有人可以建議我查看我正在見證的行為的其他原因嗎?

[編輯]

好的,它沒有預編譯,所以我真的很難理解現在發生了什么。

  • 我有網站上的所有代碼。
  • 代碼在服務器上有效。

但是,由於我已經回答了我的原始問題,因此我將結束此問題,毫無疑問,明天我再深入一點后再回來。

謝謝

最簡單的方法是查看aspx頁面:

  • 如果它們在@Page指令中指定了Assembly=
  • 或頁面大小為1KB,帶有一些“占位符”文本

然后將其預編譯。

在第一種情況下,它是“部分編譯的”(相當於“可更新的”,即您可以更改某些內容)。 在后一種情況下,它是“完全編譯”的。

而且,也許最值得注意的是,將缺少代碼文件(* .vb,*。cs等)-因為,無論編譯模式(如果已編譯)如何,它們都將被編譯為二進制文件。 如果源文件到位,則可能是您有未編譯的解決方案-或一個非常非常奇怪的項目設置。

可能還有其他解釋。 例如,其中之一是,以前的開發人員使用了版本控制軟件,並且沒有將他/她曾經使用過的所有文件添加到其中,而這就是您下載的內容,即實際上丟失了一些文件。

在您的位置,我將通過某些程序集瀏覽器(例如ILSpy)檢查程序集。 然后,您可以查看其中的內容以及與代碼文件不同的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM