VisualStudio發布(二):根據不同活動解決方案配置使用對應的動態鏈接庫


根據不同活動解決方案配置使用對應的動態鏈接庫

一、問題

開發機與服務器需要使用的動態鏈接庫版本不一致,導致發布后需要再遠程連接到服務器替換某個DLL文件。

二、實現效果

根據不同活動解決方案配置將對應服務器版本的DLL發布,不需要再進遠程桌面替換dll。
解決遠程發布“最后一公里”的問題。

注:配合另一篇博文:《VisualStudio一鍵遠程部署至IIS以及自動備份部署包》,即可實現真正的遠程部署。

https://www.cnblogs.com/soraxtube/p/15136676.html

三、方法一

操作方法

以Oracle.DataAccess.dll文件為例
開發機使用的版本為2.121.2.0
服務器使用的版本為4.121.2.0

1、將不同DLL放入不同文件夾

在項目Bin目錄下新建Debug、Release文件夾,分別放入本地和服務器使用版本的Oracle.DataAccess.dll文件
並將其設為只讀(防止編譯后消失)

2、修改CSPROJ文件

在項目CSPROJ文件中,修改Oracle.DataAccess.dll的引用路徑

<HintPath>bin\Oracle.DataAccess.dll</HintPath>

修改為:

<HintPath>bin\$(Configuration)\Oracle.DataAccess.dll</HintPath>

修改后的效果為:發布時根據選擇的不同解決方案配置,自動使用對應文件夾下的動態鏈接庫
Debug模式使用的文件為:

bin\Debug\Oracle.DataAccess.dll

Release模式使用的文件為:

bin\Release\Oracle.DataAccess.dll

發布時選擇Release模式

缺點

不能勾選預編譯。
如果Release發布時勾選預編譯會報錯。因為編譯時使用的是服務器用的DLL。

四、方法二

操作方法

刪除bin目錄(生成目錄)下的DLL文件,重新引用Debug文件夾下的DLL(2.121.2.0),並設置為不復制到本地。
發布時不勾選刪除目標上的其他文件。


這樣預編譯可以通過,生成時也不會將Debug文件夾下的DLL復制到生成目錄中。發布時不會將服務器上的DLL(4.121.2.0)覆蓋掉。

五、相關文章

VisualStudio發布(一):一鍵遠程部署至IIS以及自動備份部署包

VisualStudio發布(二):根據不同活動解決方案配置使用對應的動態鏈接庫

VisualStudio發布(三):解決WDeploy密碼過期導致的發布失敗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM