如何在Azure管道上打包.net framework Web应用程序

如何在Azure管道上打包.net framework Web应用程序,.net,iis,azure-devops,azure-pipelines,.net,Iis,Azure Devops,Azure Pipelines,我需要为在.net framework中编写的web应用程序创建azure工件。 工件将用于自动化部署 如果我使用通用工件发布器,我将在工件和其他不需要的项目中包含代码文件 有一些等效的方法可以为基于.net framework构建的经典web应用程序构建一个干净的工件?通过自动运行构建时发布找到了一个解决方案。这些步骤是: 创建“发布到文件夹”配置文件,名称FolderProfile 我使用了指向bin\app.publish的目标路径的默认值 通过使用FolderProfilesaved

我需要为在.net framework中编写的web应用程序创建azure工件。 工件将用于自动化部署

如果我使用通用工件发布器,我将在工件和其他不需要的项目中包含代码文件


有一些等效的方法可以为基于.net framework构建的经典web应用程序构建一个干净的工件?

通过自动运行构建时发布找到了一个解决方案。这些步骤是:

  • 创建“发布到文件夹”配置文件,名称
    FolderProfile

    我使用了指向bin\app.publish的目标路径的默认值

  • 通过使用
    FolderProfile
    saved profile,使用MS Build来发布到文件夹。在生成解决方案任务之后,将以下任务添加到yaml文件:

    - task: MSBuild@1
      inputs:
        solution: 'MyPortal\MyPortal.csproj'
        msbuildArchitecture: 'x64'
        msbuildArguments: '/p:DeployOnBuild=true /p:PublishProfile=FolderProfile'
    
  • 通过将此另一个任务添加到yaml文件,将工件发布到azure管道:

     - task: PublishPipelineArtifact@1
      inputs:
        targetPath: '$(Build.Repository.LocalPath)\MyPortal\bin\app.publish'
        artifact: 'My portal'
        publishLocation: 'pipeline'
    

  • 生成的.net framework应用程序不包含代码文件。生成只创建二进制文件,这些文件将转到bin文件夹。该站点由其他文件组成,例如aspx、cshtml、js文件。而且都在同一个结构中。只有通过发布项目,才能创建一个干净的包或安装。这些文件是应用程序工作所必需的。CSHtml不能简单地从浏览器下载(就像DLL不能下载一样)。JS、CSS和HTML按原样下载。所以,你不应该放置任何你不想让普通用户看到的东西。让我这样说:要创建一个工件,我需要提供一个路径。我可以提供哪些路径,包括每个子文件夹中的所有应用程序结构、二进制文件和其他文件,但没有代码文件或其他项目文件?感谢在此处共享您的解决方案,请接受您的解决方案作为答案?因此,它将有助于其他成员谁得到同样的问题,找到解决办法容易。祝你今天愉快:)