2014-10-29 51 views
1

我已經將一個巨大的網站項目轉換爲Web應用程序項目,因爲我們想要編譯代碼的形式爲DLL爲安全起見,並遵循以下MSDN文章:ASP.NET網站到Web應用程序轉換問題 - 無法加載類型'ClassName'併爲所有現有網頁設置命名空間技術

http://blogs.msdn.com/b/webdev/archive/2009/10/29/converting-a-web-site-project-to-a-web-application-project.aspx

http://msdn.microsoft.com/en-us/library/aa983476%28v=vs.100%29.aspx

該網站具有網頁/文件1000。我已經解決了構建解決方案階段面臨的所有重複引用,類名縮寫以及一些編譯錯誤的問題。由於較早的網站模式,類別名稱具有以下模式:

例如,如果UserMaster在admin/Operations/Masters文件夾中,那麼類名將如下所示:admin_Operations_Masters_UserMaster

現在,Web應用程序是構建成功,當我嘗試運行應用程序,它顯示「未能加載類型‘類名’」所以我發現,因爲命名空間是不存在的,由於早期的網站問題模式

在MSDN看出:

默認情況下,通過使用Visual Studio網站項目模型製作的網頁和類不會自動包含的代碼命名空間。但是,使用Visual Studio Web應用程序項目模型構建的頁面,控件和類會自動包含代碼名稱空間。 將Web站點項目轉換爲Web應用程序項目時,必須將代碼名稱空間添加到代碼

我有DEFAULT NAMESPACE在項目屬性中。

所以,我想通過ReSharper的的命名空間添加到整個項目 - >重構 - >調整命名空間但它的.cs文件,而不是爲了.aspx.cs等,因此它不工作。

我想我需要製作一個實用程序來自動添加名稱空間在頁面中的文件夾路徑結構,但它是一個耗時的過程。

因此,需要一種解決方法,根據文件夾路徑結構自動在頁面中添加名稱空間。

其次,

我所做的測試中,我裹在我面臨「無法加載類型的問題」項目的登錄頁面默認命名空間,在將沿用添加屬性也。然後做了一個清潔解決方案然後重建解決方案。但仍然遇到同樣的問題。

我不是爲什麼DLL沒有得到更新的登錄頁面的類。

奇怪的是,當我改變代碼隱藏的CodeFile(Page指令的屬性),那麼該網頁是工作非常精細。它是由於源文件在運行項目時出現的,但是我想使用Codebehind屬性,因爲它會告訴編譯器在DLL中查找不在源文件中的類。

最後,總結是:

我有兩個主要問題:

  • 未能加載類型「的className」
  • 如何自動在頁面按他們的文件夾路徑添加的命名空間結構體。

我已經在這裏搜索,並圍繞不同的主題,但沒有爲我工作。有人建議使用VS的「Surround With」功能,但是我需要在每個文件上逐一進行,而現在這是不可能的。

所以嘗試:DLL的 「BIN \調試」

  • 經過的生成配置的 「bin」,而不是

    • 集路的86中和。也DLL中存在bin
    • 檢查所有項目屬性,一切正常。數百次清理並重建解決方案。清理臨時ASP.NET文件也。
    • 設置生成操作「編譯」爲的.cs類文件
    • 無法設置生成操作編譯爲aspx頁面,因爲它們是靜態的HTML,他們應該被設置爲「內容」這是默認的生成操作。
    • 添加命名空間,但不工作

    請幫忙解決方案ReSharper的....

    任何幫助將不勝感激。謝謝。

  • 回答

    1

    解決問題:

    早些時候,我曾嘗試設置生成操作爲「編譯」爲的.cs類文件,並且只能用於所有文件站點範圍從的.csproj文件來編譯,但它不工作由於aspx頁面本身設置爲Compile,這不是必需的。

    現在,我已經改變了打造專業化行動編譯這對.aspx.cs和.aspx.designer.cs文件內容

    它解決了這個問題。

    喜歡例如:

    • 解決方案 'TestWebApp1'
      • 工程 'TestWebApp1'(ASP.NET Web應用程序
      • 屬性
      • 參考
      • 的App_Data
      • 腳本
      • 默認。 aspx(構建動作:Co ntent
        • Default.aspx.cs(生成操作:編譯
      • SiteLayout.Master(生成操作:內容
        • SiteLayout.Master.cs(構建行動:編譯
      • Web.co nfig

    來源None of my "code behind" code is being called

    相關問題