Web Deploy 进阶
之前想写个 Web Deploy 的教程,结果一直耽搁了。最近又遇到一个比较高级的用法,打算暂时就不写基础教程了,把几个不常用的但是很有用的用法列一下。
1、部署的时候排除某些文件或文件夹
这个功能其实很有用,比如一些自定义的 config,里面包含了一些 key 或者很重要的信息,而你的代码是开源的,你希望分享源代码,但是这些服务器相关的 key 还是不能暴露的,这时候,你本地的 config 里可能只是一些测试的 key,或者压根就可以是空的。在服务器上的 config 里,你可以放心大胆地配置这些 key。每次部署的时候,我们就希望跳过这些 config 文件,而不至于用本地的 config 去替换掉线上的。
我们需要修改项目的配置文件,也就是.csproj 文件,注意修改 Release 的,如果你发布选项中配置的是 Release 的话。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<!-- 下面这一行用来排除指定文件夹,分号分割多个文件夹 -->
<ExcludeFoldersFromDeployment>Configurations</ExcludeFoldersFromDeployment>
<!-- 下面这一行用来排除指定文件,分号来分隔多个文件 -->
<ExcludeFilesFromDeployment>XXX.config;YYY.config</ExcludeFilesFromDeployment>
</PropertyGroup>
2、通过文件校验而不是修改时间来决定某个文件是否需要发布
这个功能同样很有用,尤其当你通过源代码管理的时候,你在不同的电脑上,虽然代码相同,但其实每个文件的修改时间并不同。这会导致你在这台电脑上部署了之后,在另一台电脑上修改了部分内容,却还是需要部署所有文件。当网络不给力的时候,部署需要很长时间。
我们需要修改部署配置文件,一般是 Properties\PublishFiles\XXX.pubxml。
我们在 PropertyGroup 里添加这么一行就可以了
<MSDeployUseChecksum>true</MSDeployUseChecksum>
先写这两个。之后有空再写个详细的教程。一开始配置 Web Deploy 还是有不少注意点的。
评论区