• 问题及解决:使用dotnet publish发布时Visual Stuido创建的配置文件中的路径失效


    在Visual Stuido 2022中创建的项目需要发布到文件夹,使用Visual Studio的发布功能创建发布文件然后执行发布,一切正常,部署文件可以生成到预设的目录中。在Visual Studio中界面是这样的:

    接下来,由于需要使用自动部署,希望使用命令行工具进行发布,这可以使用dotnet publish命令完成:
    dotnet publish ./src/IDS4Admin.Admin/IDS4Admin.Admin.csproj /p:Configuration=Release /p:PublishProfile=FolderProfile3
    这时问题出现了,生成的文件没有拷贝到预设的目录,而是在项目的bin/Release目录中又新创建了publish目录。仔细研究一下Visual Studio生成的部署配置文件FolderProfile3.pubxml,发现有些问题:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    https://go.microsoft.com/fwlink/?LinkID=208121. 
    -->
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <DeleteExistingFiles>False</DeleteExistingFiles>
        <ExcludeApp_Data>False</ExcludeApp_Data>
        <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <PublishProvider>FileSystem</PublishProvider>
        <PublishUrl>D:\Asp.Net Core\IdentityServer4Admin\IDS4Admin\Publish\Admin\x64std</PublishUrl>
        <WebPublishMethod>FileSystem</WebPublishMethod>
        <SiteUrlToLaunchAfterPublish />
        <TargetFramework>net5.0</TargetFramework>
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
        <ProjectGuid>698cac59-4332-4767-91e7-fe088b3220b0</ProjectGuid>
        <SelfContained>true</SelfContained>
      </PropertyGroup>
    </Project>
    

    生成的路径使用的是PublishUrl,生成方法是WebPublishMethod,这应该有问题,文件路径应该使用PublishDir,生成的方法应该使用PublishProtocol,于是手工创建一个新的配置文件FolderProfile4.pubxml,修改上面两项内容:

    	<PublishDir>..\..\..\Publish\Admin\x64std</PublishDir>
    	<PublishProtocol>FileSystem</PublishProtocol>
    

    使用命令行生成可以了,文件能够正确输出到预设的目录。可新的问题产生了,这个配置文件在Visual Studio中被认为是Web部署:

    在Visual Studio中不能正确执行部署了。
    从现象上看,似乎是Visual Studio把两种部署方式搞反了,在现实中,只能创建两个部署文件,一个用于命令行自动部署,一个用于Visual Studio手工生成。

    本文来自博客园,作者:寻找无名的特质,转载请注明原文链接:https://www.cnblogs.com/zhenl/p/15603274.html

  • 相关阅读:
    ubuntu 下安装Angular2-cli脚手架
    git的使用及常用命令(二)
    framework7+node+mongo项目
    LINUX下安装搭建nodejs及创建nodejs-express-mongoose项目
    初学strurs基础
    JAVA Struts2 搭建
    mongodb的基本操作
    LightOj_1342 Aladdin and the Magical Sticks
    Codeforces Round #Pi (Div. 2)
    Codeforces Round #315 (Div. 2)
  • 原文地址:https://www.cnblogs.com/zhenl/p/15603274.html
Copyright © 2020-2023  润新知