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 login和password
最后,我在具有复杂文件夹结构的远程计算机上获得了zip软件包,而根本没有在其中进行任何转换。
怎么了?如何使用VSTS设置与Visual Studio中相同的“发布到文件夹”?
将以下 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 部署任务在部署时间更改值。
您正在通过文件系统方法发布Web应用程序,它是基于指定的配置(例如,Debug,Release)来转换web.config的。因此,您需要检查在构建解决方案任务中指定的配置(例如,Visual Studio Build任务)
简单的任务:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactstagingdirectory)\\" /p:DeployDefaultTarget=WebPublish;平台:$(BuildPlatform);配置:)$(BuildConfiguration)注意:BuildPlatform和BuildConfiguration是生成变量。它将Web应用程序发布到工件目录([代理工作文件夹] / 1 / a)| 归档时间: |
|
| 查看次数: |
3664 次 |
| 最近记录: |