在使用 DevOps 管道上传到 SPO 应用程序目录之前修改 .sppkg 文件的内容
Modify content of .sppkg file before uploading to SPO app catalog using DevOps pipelines
我想 运行 通过 DevOps 构建管道一次 SPFx web 部件,并让相同的工件可部署到任何环境。
目前我有一个设置,其中代码中的 #{PlaceHolders}# 将被 DevOps 发布管道中的 Replace Tokens 任务替换。为此,我添加了一个 Extract activity 来解压 .sppkg 包,之后我替换生成的 .zip 文件中的标记,然后我将文件归档回 .sppkg 包。
我 运行 遇到的问题是,SharePoint 似乎不喜欢我篡改它的 .sppkg 文件。在应用程序目录中,每当我替换令牌时,我都会在应用程序包错误消息列中得到这个:
程序包包含错误数量的关系类型'http://schemas.microsoft.com/sharepoint/2012/app/relationships/package-manifest'. Expected: '1'. Actual: '0'.
感谢任何关于如何安全修改 .sppkg 包的线索,或者我如何在解决方案打包后将环境变量实现到我的 SFPx Web 部件中的任何线索。
目标是能够将同一个构建提升到 Azure DevOps 中的后续环境。
编辑提供发布管道详细信息
使用标准的提取文件和存档文件任务,这些是使用的设置:
存档模式:
$(System.DefaultWorkingDirectory)/MyProjectFolder/drop/SharePoint/solution/my-package.sppkg
目标文件夹:
$(System.DefaultWorkingDirectory)/MyProjectFolder/drop/SharePoint/solution/extracts
要存档的根文件夹或文件:
$(System.DefaultWorkingDirectory)/MyProjectFolder/drop/sharepoint/solution/extracts
要创建的存档文件:
$(System.DefaultWorkingDirectory)/MyProjectFolder/drop/sharepoint/solution/my-package.sppkg
我也在本地构建后尝试在本地修改 .sppkg 包,但结果相同。所以我想可能会有一个签名被添加到正在寻找长度的 .sppkg 包中,如果更改,它可能会被拒绝?
我 运行 使用 PowerShell“Compress-Archive”遇到了同样的问题,但是当我切换到 7zip 时,我能够提取 sppkg,替换占位符,重新压缩并且应用程序目录接受了新的 sppkg。
通过将 Microsoft.PowerShell.Archive 更新到 > 1.2.3.0 也解决了我的“压缩存档”问题,请参阅:link
我想 运行 通过 DevOps 构建管道一次 SPFx web 部件,并让相同的工件可部署到任何环境。
目前我有一个设置,其中代码中的 #{PlaceHolders}# 将被 DevOps 发布管道中的 Replace Tokens 任务替换。为此,我添加了一个 Extract activity 来解压 .sppkg 包,之后我替换生成的 .zip 文件中的标记,然后我将文件归档回 .sppkg 包。
我 运行 遇到的问题是,SharePoint 似乎不喜欢我篡改它的 .sppkg 文件。在应用程序目录中,每当我替换令牌时,我都会在应用程序包错误消息列中得到这个:
程序包包含错误数量的关系类型'http://schemas.microsoft.com/sharepoint/2012/app/relationships/package-manifest'. Expected: '1'. Actual: '0'.
感谢任何关于如何安全修改 .sppkg 包的线索,或者我如何在解决方案打包后将环境变量实现到我的 SFPx Web 部件中的任何线索。
目标是能够将同一个构建提升到 Azure DevOps 中的后续环境。
编辑提供发布管道详细信息
使用标准的提取文件和存档文件任务,这些是使用的设置:
存档模式: $(System.DefaultWorkingDirectory)/MyProjectFolder/drop/SharePoint/solution/my-package.sppkg
目标文件夹: $(System.DefaultWorkingDirectory)/MyProjectFolder/drop/SharePoint/solution/extracts
要存档的根文件夹或文件: $(System.DefaultWorkingDirectory)/MyProjectFolder/drop/sharepoint/solution/extracts
要创建的存档文件: $(System.DefaultWorkingDirectory)/MyProjectFolder/drop/sharepoint/solution/my-package.sppkg
我也在本地构建后尝试在本地修改 .sppkg 包,但结果相同。所以我想可能会有一个签名被添加到正在寻找长度的 .sppkg 包中,如果更改,它可能会被拒绝?
我 运行 使用 PowerShell“Compress-Archive”遇到了同样的问题,但是当我切换到 7zip 时,我能够提取 sppkg,替换占位符,重新压缩并且应用程序目录接受了新的 sppkg。
通过将 Microsoft.PowerShell.Archive 更新到 > 1.2.3.0 也解决了我的“压缩存档”问题,请参阅:link