gpt4 book ai didi

c# - MSDeploy 无法手动部署压缩包

转载 作者:太空狗 更新时间:2023-10-29 21:12:41 33 4
gpt4 key购买 nike

之前我使用 msbuild.exe 构建和部署 Web 项目

现在我想在部署前修改一些文件,所以我使用 msbuild 制作了一个 .zip 包,然后解压它,修改一些文件然后再次压缩并尝试使用 msdeploy 进行部署。

问题是,它部署空文件夹。当我尝试部署未修改的 .zip 包时 - 它工作正常。

经过长时间的挖掘,我发现 msdeploy 不支持使用非内置 Windows zip 归档器压缩的包。

如何在 C#/F# 中使用 windows zip archiver 压缩文件?我试过使用 System.IO.Compression.ZipFile.CreateFromDirectory 方法,但 msdeploy 仍然部署空文件夹。

这是我在尝试部署包时收到的警告:

Warning: Skipping source dirPath (C:\TeamCity\buildAgent\MyPath) because of rule SkipInvalidSource.
The Zip package 'C:\TeamCity\buildAgent\MyPath\MyPackage.zip' could not be loaded.

当我禁用 SkipInvalidSource 规则时,出现以下错误:

Error: (12/23/2014 6:56:44 PM) An error occurred when the request was processed on the remote computer.
Error: Object reference not set to an instance of an object.
at Microsoft.Web.Deployment.DeploymentSyncEnumerable.<Create>d__0.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable`1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId)
Error count: 1.

对如何正确压缩和部署项目有什么想法吗?

最佳答案

我确实遇到了这个问题。我有一堆 msdeploy 包,需要在打包后但部署前更新一些文件。

如果我使用 msdeploy sync 提取程序包,参数会得到处理 - 这不好,它们只是占位符,直到我知道目标是哪个环境。所以我需要解压缩包,然后进行更改...到目前为止一切顺利。

但后来我重新压缩了它。然后我遇到了这个问题:msdeploy 不会处理包含的文件夹。如果我使用 msdeploy 处理提取的文件,我会再次丢失参数……或者更确切地说,它们会从 paramters.xml 文件中过早处理。咕噜咕噜

解决方案?使用 7zip...或标准 Windows zipper 以外的任何东西。

例如7z.exe a -r C:\deploys\mypackage.zip C:\extractedstuff\*

关于c# - MSDeploy 无法手动部署压缩包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626419/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com