• dotnet core 命令行使用web deploy 部署项目到远程IIS


    众所周知dotnet cli可以用来编译和生成发布.net core,其实dotnet publish 还能进行WebDeploy。先解释一下使用场景一般是用于持续部署

    dotnet publish进行web deploy其实是内置调用MSBuild, 相当于dotnet publish和MSBuild进行web deploy两个步骤合二为一了。

    首先,执行部署命令的机器需要安装MSBuild 和Visual Studio Build Tools。目前最新的Visual Studio Installer已经集成了安装组件,所以我们只需要通过Visual Studio Installer来安装就可以了。后续的vs2019版本的安装器应该也会是这样的。

    如下图所示,勾选Visual C++生成工具,取消勾选CMake和测试工具(因为进行web deploy是不需要,需要的人请略过)

    然后在单个组件中勾选Web部署 (Web Deployed)

    然后点击安装就可以了,总共需要约4G空间。

    在VS中添加WebDeploy配置文件

    填入目标服务器,站点名,进行部署的用户名 密码,目标url选填。然后点击验证连接,测试是否出错。保存即可。默认生成的发布xml文件叫做CustomProfile.pubxml。在项目的Properties/PublishProfiles下可以看到,可以重命名。

    然后打开命令行或者Powershell到项目所在目录,运行dotnet publish命令,加上web deploy参数即可。

    示例如下

    dotnet publish -c Release /p:PublishProfile="CustomProfile" /p:Password=xxxxx /p:AllowUntrustedCertificate=true
    PublishProfile参数指定发布xml文件名,Password指定发布用户名的密码,AllowUntrustedCertificate指定是否允许不信任认证,设置为true就不会报连接未认证的错误了。
    其实还可以在任意路径运行,但是dotnet publish后要加上项目csproj文件的路径,效果和一样。

    命令行发布成功

    在windows服务器中使用CI(持续集成)/CD(持续部署)就可以通过这种方式一步到位编译生成部署。

    jenkins teamcity都行。azure devops则完全不需要这种方式,因为它自带的IIS部署就已经很强大了,而且CI和CD是完全分离的。

    但是azure devops的CI构建没有缓存,导致每次构建都是一次git下载,完全重新编译部署的过程,实在是   太慢了。或许后续会有所改进吧(再吐槽下azure devops本地部署(就是TFS) 所用的ES实在是太吃内存,常年占用4-6G,换成云的又是6刀/人/月(5人一下免费),公司开发者刚好10个左右,很尴尬,不愿意花这钱。还有就是CI的速度问题最终不得不放弃Azure DevOps,选择了teamcity)



  • 相关阅读:
    CCF-CSP的第三题们么
    STL
    信息安全-期末复习
    NLP自然语言处理
    python 处理文件
    信息安全-简易的DES加解密--3DES
    试药的常见问题
    关于试药的那些事
    Excel的单列和多列的拆分与合并
    Excel中的文本提取操作
  • 原文地址:https://www.cnblogs.com/turingguo/p/10341004.html
Copyright © 2020-2023  润新知