如何在用于部署的服务结构应用程序包中包含发布配置文件和应用程序参数?

Posted

技术标签:

【中文标题】如何在用于部署的服务结构应用程序包中包含发布配置文件和应用程序参数?【英文标题】:How to include Publish profile and application parameters in a package of service fabric application for deployment? 【发布时间】:2021-08-30 10:25:04 【问题描述】:

我正在尝试打包 Service Fabric 应用程序,当我这样做时,我有应用程序清单和服务清单文件,但我还想包含应用程序参数和发布配置文件。

【问题讨论】:

【参考方案1】:

不确定您使用的是什么 CI 系统,但通常需要三个部分才能使其全部工作

    打包您的应用程序输出 + 清单。这基本上是您在sfproj 上执行MSBuild 得到的包位置输出。在下面,我假设 CI 构建工件输出转到 '$(build.artifactstagingdirectory)'
/t:Package /p:PackageLocation=$(build.artifactstagingdirectory)\applicationpackage
    在 CI 构建输出中包含一个步骤,以将参数和配置文件复制到另一个文件夹 - 例如$(build.artifactstagingdirectory)\projectartifacts
**\PublishProfiles\*.xml
**\ApplicationParameters\*.xml
    部署您的应用程序。为此,请查看在您首次创建 .sfproj Service Fabric 项目时由 Visual Studio 创建的 Deploy-FabricApplication.ps1 脚本。当您将应用程序部署到本地开发集群时,Visual Studio 也会使用此方法,并且您基本上必须执行相同的步骤才能部署到另一个集群。

假设您的 CI 工件输出存在于 "$(SF_PackagePath)" 中的简单示例

Deploy-FabricApplication.ps1 -ApplicationPackagePath "$(SF_PackagePath)\applicationpackage" -PublishProfileFile "$(SF_PackagePath)\projectartifacts\Local.1Node.xml"

【讨论】:

非常感谢!这就是我要找的一切! 我尝试了 Deploy-FabricApplication.ps1 -ApplicationPackagePath "$(SF_PackagePath)\applicationpackage" -PublishProfileFile "$(SF_PackagePath)\projectartifacts\Local.1Node.xml" 命令,但我收到一条错误消息“The术语“Deploy-FabricApplication”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称”....我应该遗漏一些东西。你能给我解释一下吗?谢谢! @Adriaan de Beer 您需要在构建代理上安装SF SDKAzDo example 有没有办法在本地机器上没有 SF SDK 的情况下运行 DeployServiceFabricApplication.ps1 脚本? ***.com/users/1144750/adriaan-de-beer 您是否尝试过复制并运行此脚本作为构建输出的一部分?这就是我对托管的 azure 构建所做的事情。它们提供了一个不需要安装 SDK 的服务结构 PowerShell 任务。

以上是关于如何在用于部署的服务结构应用程序包中包含发布配置文件和应用程序参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio、C# 项目的部署中包含文件和文件夹?

即使在我的.pro文件中包含“testlib”包(用于qWait())之后,如何避免Qt应用程序中的控制台窗口?

如何把java项目完整的上传到linux服务器上去,项目中包含jar包?

如何在 AWS 配置文件中包含山魈凭证?

在 Symfony 中包含用于传播 PDF 生成器包的字体

如何在 karma 测试运行器中包含来自 webpack 的供应商捆绑包