我有一個由3個項目組成的解決方案。我創建了一個部署項目,它只包含來自我的解決方案中某個項目的依賴項。如何在安裝和部署項目中包含依賴關係?
我到目前爲止所做的是在我的安裝和部署項目中,我右鍵單擊「應用程序文件夾」來添加 - >項目輸出。接下來,我從下拉菜單中選擇了我的主項目,並選擇了「主輸出」。我點擊確定,該項目的依賴關係已成功包含在部署中。
我試着對我的解決方案中的其他DLL重複相同的過程,但它不包括它們的依賴關係。
如何包含每個項目的所有依賴關係?
我有一個由3個項目組成的解決方案。我創建了一個部署項目,它只包含來自我的解決方案中某個項目的依賴項。如何在安裝和部署項目中包含依賴關係?
我到目前爲止所做的是在我的安裝和部署項目中,我右鍵單擊「應用程序文件夾」來添加 - >項目輸出。接下來,我從下拉菜單中選擇了我的主項目,並選擇了「主輸出」。我點擊確定,該項目的依賴關係已成功包含在部署中。
我試着對我的解決方案中的其他DLL重複相同的過程,但它不包括它們的依賴關係。
如何包含每個項目的所有依賴關係?
請注意,由Visual Studio安裝項目檢測到的依賴關係更像是建議。你不應該太信任他們,因爲誤報很常見。
對於專業的安裝程序,您應該自己確定正確的依賴關係,並以適當的形式將它們添加到項目中。例如,某些依賴項可能是運行時或框架的一部分,可作爲安裝程序的先決條件添加。
如果你不能確定你的應用程序有什麼依賴性,你可以嘗試使用dependency walker。
VS安裝項目依賴關係行走功能非常強大,真的是直接依賴性檢查和產品二進制打包的絕佳去處。隨着構建詳細程度的增加,它允許直接分析每個DLL的哪個版本被引用,因此您具有需要更新構建引用的信息。不幸的是,如果版本信息沒有在搜索路徑中找到合適的版本,則版本信息會被放入依賴項中,並且安裝項目可能無法選擇。
關於誤報,我的經驗是它會帶來任何二進制引用,無論是否有實際的代碼路徑上的樹。解決這個問題的辦法是重構代碼(使項目更好一點)。
如果您不使用直接項目引用,則安裝項目不會引入這些依賴項。這是你遇到的問題嗎?否則,我會調出日誌詳細信息並搜索您期望的引用。它應該說明它正在尋找哪個版本以及它在哪裏搜索以及爲什麼它沒有獲取任何內容。