更新繼承的 VS2017 C# MVC 項目中的網頁。無法復制整個重建結果,因為我沒有與生產中的代碼庫(尚)相匹配的最新代碼庫,并且需要向現有網站添加新頁面。只想將這個單頁/.dll 提升到現有產品中。背景:我從網站供應商那里繼承了巨大的預編譯 C# 網站代碼(我們構建了它,我們得到了報酬,現在它是你的了),其中包括解決方案中的 6 個項目,我不熟悉 MVC 思維。我第一次向項目添加新網頁,進行構建,進入提示符并排序我的本地(我發布到本地驅動器,然后手動將文件自動復制到服務器)TFS 按日期時間發布 /bin 目錄并發現已更改的單個 .dll 文件。將其加上源頁面(存根)復制到生產網站上。它實際上“有效”......但給了我一個服務器錯誤 500 (沒有幫助),但所有其他頁面加載并工作正常,所以這意味著我認為我走在正確的軌道上......所以我回去了,補充道一些調試代碼到頁面,做了另一個構建,但現在有大約 10 個 .dll 文件發生了變化?!我聽說 REbuild 會導致所有文件更新,無論發生什么變化,所以我一直只使用 Build。如何可靠地判斷構建后需要復制哪些文件?我可以以某種方式告訴 VS 只重建項目中的單個網頁嗎?
1 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
因此,經過大量的試驗和錯誤,我發現只有某些文件可以這樣做。所討論的代碼頁不需要對項目中的任何其他頁面或其他依賴項產生任何影響,除了非常具體的程序集(這些程序集非常簡單且僅在該特定頁面中使用)。
在我的具體示例中,我將 ASP.Net 代碼頁面添加到現有的 C# 項目中。我的頁面需要外部 .dll 程序集才能工作,但任何其他項目中的其他代碼都不會受到影響。我還遇到了 32 位與 64 位問題,其中程序集必須是 Visual Studio 中的 32 位程序集,否則項目將無法編譯,但運行時程序集必須是 64 位程序集才能在網站上運行,所以我必須手動復制它。啊。
所以我發現我可以對項目進行完整的構建,然后進行發布來預編譯整個解決方案。然后,我查看本地計算機上生成的 /bin 目錄,并找到以代碼頁的文件名開頭的相關*.compiled文件。在該文本文件中有一行內容為assembly="App_Web_4wfba3zi"或類似內容。這會告訴您項目需要哪個.dll來運行該預編譯的網頁。
我將.compiled和.dll文件復制到生產網站/bin目錄中(記住將存根文件保留在網站中),我很高興!這當然是一次學習經歷......
- 1 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消