2013-03-07 47 views
1

我知道引用存儲在ASP.NET Web應用程序的項目(vbproj)文件和網站的Web.Config(http://msdn.microsoft.com/en-us/library/37e2zyhb%28v=vs.71%29.aspx)中。發佈網絡應用程序和網站

我最近把一個網站轉換成了一個web應用程序。我現在注意到,即使Web.Config中的版本信息不正確,然後通過瀏覽器訪問Web應用程序時,Web應用程序也會發布(使用「發佈」選項),但出現錯誤。

如果Web.Config中的程序集版本不正確,我無法發佈網站。

我讀過Web應用程序是預編譯的(在發佈之前),而網站是在第一次通過瀏覽器訪問網站時編譯的。

因此,我相信我所說的應該是相反的方式,即我應該能夠在Web.Config中發佈帶有不正確版本的網站(因爲它們沒有編譯),我不應該能夠發佈一個Web應用程序。

我錯過了什麼?

回答

0

經過一番進一步的研究;我發現ASP.NET Web應用程序是使用MSBuild構建的,ASP.NET網站使用ASPnet_Compiler構建。 ASPnet_Compiler在構建時查找引用程序集的Web.Config(添加程序集標記),而MSBuild在構建時查找項目文件(vbproj)。

Web應用程序部署時不使用vb​​proj。我相信該項目文件用於鏈接。因此,在運行時,Web應用程序使用Web.Config中的信息來標識要在本地bin文件夾中查找的程序集,然後使用GAC(僅用於aspx頁)名稱空間仍然需要手動導入部分類後面的代碼中。

如果有人有任何意見或更好的答案,請發表。