我正在更新我們的CruiseControl.NET持續集成環境,從使用舊版Visual Studio 2008 Web部署項目到Visual Studio 2010.爲什麼我的MVC應用程序將GetExecutingAssembly名稱報告爲App_web_xxxxx.dll?
我不想使用Beta 2010 Web部署項目,因爲我認爲我可以使用2010年更新的出版/包裝。
目前我已設法配置CruiseControl腳本兩次調用MSBuild。首先在Release配置中構建解決方案,然後打包MVC項目。
然後,我從一個可怕的文件路徑(這使我懷疑我沒有做這個正確的,但是嘿)和轉換web.configs從測試服務器中從包複製出正確的文件。
這是終於正常工作,但不同於當我使用2008部署項目時,此代碼將ExecutingAssembly作爲App_web_xxxxx.dll返回,而不是返回Company.Product.Web.dll。
Dim CurrentAssembly As Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly
Dim version As String = CurrentAssembly.GetName.Version.ToString
我知道GetName返回的字符串不僅僅是名稱,而且我正在調試它以查看它包含的內容。我知道這是編譯/緩存的DLL,但爲什麼不是MVC箱中的那個。
乾杯