C#,.NET 2.0MSBuild失敗,但建設裏面的Visual Studio工作正常
我有一個解決方案,其他2個項目(用作庫引用)的ASP.NET網站。當我在Visual Studio中構建(調試或發佈)時,一切正常。但是,使用MSBuild構建失敗。
這個版本有一直在工作(它實際上是通過一個nAnt任務調用的)。唯一改變的是我有一個新的用戶控件,其Type I在我的代碼中引用。
違規代碼在我的ASPX代碼後面。 MessageAlert是用戶控件:
MessageAlert userControl = this.LoadControl("~/UserControls/MessageAlert.ascx") as MessageAlert;
userControl.UserMessage = message;
this.UserMessages.Controls.Add(userControl);
爲了讓Visual Studio來識別型「MessageAlert」我必須:在@Control標記
1)設定該類=「MessageAlert」頂部用戶控制的(因爲使用自動生成的UserControls_MessageAlert沒有任何工作)
2)註冊在我的ASPX的標記用戶控件,使用@Register
3)添加「使用ASP 「到我的代碼頂部
經過這些步驟之後,我可以在Visual Studio的代碼隱藏中成功引用MessageAlert類型。但是從MSBuild中我得到「無法找到類型或名稱空間名稱'MessageAlert'(您是否遺漏了使用指令或程序集引用?)」
MSBuild的執行非常簡單 - 它指出了非常類似的解決方案文件並將配置屬性設置爲釋放。
看來,根據我在Visual Studio中獲得MessageAlert類型引用所經歷的步驟數量,MSBuild過程中缺少某些內容。但是什麼? Visual Studio實際上不是在幕後調用MSBuild?
有沒有更好的方法來引用ASPX後面的代碼中的UserControl類型?
編輯:爲了澄清,MessageAlert用戶控件是而不是在其他引用程序集/項目。我提到他們是因爲和網站一起組成了Solution文件,這個文件和MS Build一樣是由同一個sln文件構成的。
是在 「其他」 引用的項目之一messageAlert控制?你通常不能這樣做,但有解決方法。 – DancesWithBamboo 2009-05-19 23:51:27
你在一個網站「項目」中使用這個嗎?如果是這樣,他們本身並不是真正意義上的*構建*。這也可能是你所看到的「UserControls_MessageAlert」的原因。 – 2009-05-20 01:27:55