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

时间:2018-01-05 14:23:46

标签: azure-devops azure-pipelines continuous-delivery web-publishing one-click-web-publishing

我通过右键单击项目在Visual Studio中使用publish to folder选项 - >发布 - >发布到文件夹。结果始终是带有应用转换的准备复制项目。 我想使用VSTS自动执行此过程,并在VSTS上进行设置 我用了下一步:
- NuGet restore
- Build solution
- Publish Build Artifacts$(build.artifactstagingdirectory)
- 使用Windows machine file copy$(build.artifactstagingdirectory)

admin login到远程计算机的password

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

2 个答案:

答案 0 :(得分:5)

将以下目标添加到.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>

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

/p:TransformConfigFiles=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:OutDir="$(build.stagingDirectory)"

enter image description here

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

enter image description here

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

enter image description here

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

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

答案 1 :(得分:5)

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

简单的任务:

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