根据不同活动解决方案配置使用对应的动态链接库
一、问题
开发机与服务器需要使用的动态链接库版本不一致,导致发布后需要再远程连接到服务器替换某个DLL文件。
二、实现效果
根据不同活动解决方案配置将对应服务器版本的DLL发布,不需要再进远程桌面替换dll。
解决远程发布“最后一公里”的问题。
注:配合另一篇博文:《VisualStudio一键远程部署至IIS以及自动备份部署包》,即可实现真正的远程部署。
三、方法一
操作方法
以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以及自动备份部署包