6 c# msbuild zip web-deployment msdeploy
之前我使用msbuild.exe构建和部署Web项目
现在我想在部署之前修改一些文件,所以我使用msbuild创建一个.zip包,然后解压缩它,修改一些文件然后再次压缩它并尝试使用msdeploy进行部署.
问题是,它部署了空文件夹.当我尝试部署未修改的.zip包时 - 它工作正常.
经过长时间的挖掘,我发现,msdeploy不支持使用内置的windows zip存档器之外的压缩包.
如何在C#/ F#中使用Windows zip归档文件压缩文件?我尝试使用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.
Run Code Online (Sandbox Code Playgroud)
当我禁用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.
Run Code Online (Sandbox Code Playgroud)
有关如何正确压缩和部署项目的任何想法?
我有这个确切的问题.我有一堆msdeploy包,需要在包装后更新一些文件但需要预部署.
如果我使用msdeploy同步来提取包,那么参数就会得到处理 - 这是不好的,它们只是占位符,直到我知道哪个环境是目标.所以我需要解压缩包然后进行更改......到目前为止一切都很好.
但后来我重新拉了一下.然后我得到这个问题:msdeploy将不处理包含的文件夹.如果我使用msdeploy来处理提取的文件,我再次丢失参数......或者更确切地说,它们会从paramters.xml文件中过早处理.格儿.
解决方案?使用7zip ...或标准Windows拉链以外的任何东西.
例如
7z.exe a -r C:\deploys\mypackage.zip C:\extractedstuff\*
不要使用 zip 归档程序。您必须调用 msdeploy.exe。
bat 文件示例:
msdeploy.exe -verb:sync ^
-source:archiveDir="C:\YourAbsolutePathToTheFolderContaining_Content_DirAnd_XMLs" ^
-dest:package="ArchName.zip" ^
-declareParam:name="IIS Web Application Name",defaultValue="Default Web Site/AppName",tags="IisApp" ^
-declareParam:name="IIS Web Application Name",type="ProviderPath",scope="IisApp",match="^.*PackageTmp$" ^
-declareParam:name="IIS Web Application Name",type="ProviderPath",scope="setAcl",match="^.*PackageTmp$"
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看帮助:
msdeploy -help -dest
msdeploy -help -declareParam
Run Code Online (Sandbox Code Playgroud)
和别的。另请参阅parameters.xml
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |