安装程序使用VSTS发布到文件夹

Tim*_*Tim 3 web-publishing one-click-web-publishing continuous-delivery azure-devops azure-pipelines

publish to folder通过右键单击项目->发布->发布到文件夹,通过Visual Studio 使用选项。结果始终是具有应用转换的易于复制的项目。我想使用VSTS自动化此过程,并在VSTS上进行设置。
我用下面的步骤:
- NuGet restore
- Build solution
- Publish Build Artifacts$(build.artifactstagingdirectory)
- Windows machine file copy$(build.artifactstagingdirectory)使用远程机器admin loginpassword

最后,我在具有复杂文件夹结构的远程计算机上获得了zip软件包,而根本没有在其中进行任何转换。
怎么了?如何使用VSTS设置与Visual Studio中相同的“发布到文件夹”?

Cha*_*daC 5

将以下 Target 添加到您的 .csproj 以启用转换配置文件

<Target Name="TransformConfigFiles" AfterTargets="AfterBuild" Condition="'$(TransformConfigFiles)'=='true'">
<ItemGroup>
  <DeleteAfterBuild Include="$(WebProjectOutputDir)\Web.*.config" />
</ItemGroup>
<TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" />
<Delete Files="@(DeleteAfterBuild)" /></Target>
Run Code Online (Sandbox Code Playgroud)

在您的构建解决方案步骤中,添加以下构建参数“/p:TransformConfigFiles=true”将使用上面添加的目标进行配置转换到 .csproj

/p:TransformConfigFiles=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:OutDir="$(build.stagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

然后您可以使用发布步骤来发布您的 $(build.stagingDirectory) 内容。如果您只需要网站输出,您可以使用 $(build.stagingDirectory)_PublishedWebsites 作为发布路径。

在此处输入图片说明

这将允许您获取 ms 部署包以及 xcopy 部署已发布的网站文件。

在此处输入图片说明

如果您有任何其他文件,您可以在发布任务之前使用复制文件任务来复制任何其他文件到 $(build.stagingDirectory) 并将它们发布为构建工件。

VSTS 版本管理部署组一起使用,将您的应用程序部署到目标服务器。您可以使用IIS 部署任务使用 ms 部署包部署到 IIS。如果您使用的是 web 部署包,则可以在 web 应用程序中使用parameters.xml来获取分配给 .setparameters.xml 的 web 配置参数,以便您可以使用 IIS 部署任务在部署时间更改值。


sta*_*SFT 5

您正在通过文件系统方法发布Web应用程序,它是基于指定的配置(例如,Debug,Release)来转换web.config的。因此,您需要检查在构建解决方案任务中指定的配置(例如,Visual Studio Build任务)

简单的任务:

  1. NuGet工具安装程序任务
  2. NuGet恢复任务
  3. Visual Studio生成任务(MSBuild参数:/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish;平台:$(BuildPlatform);配置:)$(BuildConfiguration)注意:BuildPlatformBuildConfiguration是生成变量。它将Web应用程序发布到工件目录([代理工作文件夹] / 1 / a)
  4. 发布构建工件(发布路径:$(build.artifactstagingdirectory)