首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发布.NET“发布”工件?

如何发布.NET“发布”工件?
EN

Stack Overflow用户
提问于 2021-03-25 05:18:38
回答 1查看 1.3K关注 0票数 1

我需要为MSBuild "Release“发布任务中的根文件/文件夹指定什么?

.NET发行版基本上是二进制文件吗?因为对于AngularOutput构建,我必须指定AngularOutput的路径,但是对于.NET版本,我不知道这是什么路径,我认为这是整个项目,哪一个means...its是二进制文件?

预期人工制品:

更新:凯文的YAML:之后产生的工件

inside _PublishedWebsites

跟随update3,在windows代理上运行时:

Update#4:使用VSBuild

代码语言:javascript
复制
steps:
- task: VSBuild@1
  displayName: '.Net build | Build solution'
  inputs:
    solution: 'Project123/*.csproj'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: AnyCPU
    configuration: Release
    msbuildArchitecture: x64

结果是一样的,放在很长的路上:

update#5:使用/p:PublishProfile=Project123.pubxml MSBuild arg代替,并在windows代理上运行,构建完成得很好,但这次我收到了发布任务的警告:

##warningDirectory 'D:\a\1\a‘为空。不会添加任何东西来构建工件‘发布’。

我尝试在发布概要文件arg的同时将/p:OutputPath=$(build.artifactstagingdirectory)添加到MSBuild args中,结果与我之前发布的结果相同:

备注:

我们真的需要/p:DeployOnBuild=true吗?我理解这是为了部署,但我认为我们不希望或者应该部署在这个过程中,因为我们已经发布了一个版本,专门用于将已发布的工件部署到App。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-26 02:13:49

,我需要为MSBuild“发布”的发布任务中的根文件/文件夹指定什么?

使用Msbuild任务生成项目时,默认情况下输出文件将保存在Bin文件夹中。例如:$(build.sourcesdirectory)/Projectname/bin

根据项目的结构,特定路径可能有所不同。

我建议您可以在msbuild任务中添加Msbuild参数(例如/p:OutputPath=$(build.artifactstagingdirectory))。

例如:

在这种情况下,可以将特定路径设置为输出路径。这将使您更容易存档和发布工件。

更新:

Ubuntu代理:

如果我不设置msbuild,输出文件将显示在bin文件夹中:

当我添加msbuild时,它会将文件上传到目标路径:

他们有相同的文物内容。

Update2:

您可以尝试下面的示例来创建Azure应用程序服务包。

经典:

Yaml:

代码语言:javascript
复制
steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: Sample.sln

- task: MSBuild@1
  displayName: 'Build solution Sample.sln'
  inputs:
    solution: Sample.sln
    platform: '$(BuildPlatform)'
    configuration: Release
    msbuildArguments: '/p:OutputPath=$(build.artifactstagingdirectory)'

- task: ArchiveFiles@2
  displayName: 'Archive $(Build.ArtifactStagingDirectory)'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
  condition: succeededOrFailed()

结果:

Update3:

代码语言:javascript
复制
steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: Sample.sln

- task: MSBuild@1
  displayName: 'Build solution Sample.Web/Sample.Web.csproj'
  inputs:
    solution: Sample.Web/Sample.Web.csproj
    platform: '$(BuildPlatform)'
    configuration: Release
    msbuildArguments: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'


- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66793504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档