【问题标题】:MSbuild command line parameter for skipping the directory用于跳过目录的 MSbuild 命令行参数
【发布时间】:2012-10-19 20:34:19
【问题描述】:

我在团队城市中有以下命令行参数进行部署。一切正常,但我想在部署时跳过一些目录。我如何在团队城市的 msbuild 脚本中添加该逻辑

/P:Configuration=%env.Configuration%
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:SkipExtraFilesOnServer=True
/P:UserName=xxxxx
/P:Password=xxxxx

【问题讨论】:

  • 我有一个后续问题:在 VSTS 中如何在 VS Build 期间跳过目录?

标签: msbuild teamcity msdeploy


【解决方案1】:

我也在做同样的事情。我不想修改我的 .csproj 文件,所以我尝试了这个。到目前为止,它对我有用。就我而言,我从部署中排除了媒体、App_Data\Logs 和 App_Data\preview 文件夹,而不是 Data 文件夹。

基本上,您可以将 ExcludeFoldersFromDeployment 作为参数传递给 MSBuild。将其与 SkipExtraFilesOnServer 相结合就可以了。

/p:Configuration=Debug
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=OurDevWebServer/msdeployagentservice
/p:AllowUntrustedCertificate=True
/p:MSDeployPublishMethod=RemoteAgent
/p:CreatePackageOnPublish=True
/p:DeployIisAppPath=umbraco_TestSite
/p:IgnoreDeployManagedRuntimeVersion=True
/p:SkipExtraFilesOnServer=True
/p:ExcludeFoldersFromDeployment="media;App_Data\Logs;App_Data\preview"
/p:IncludeSetAclProviderOnDestination=False
/p:AuthType=NTML /p:UserName=

【讨论】:

    【解决方案2】:

    您不能通过命令行指定 WPP 跳过规则,因为它们被声明为项目,而不是属性。

    这是在pubxml(或wpp.targets)中声明跳过规则的语法:

    <ItemGroup>
      <MsDeploySkipRules Include="SkipErrorLogFolder1"> 
        <SkipAction>Delete</SkipAction> 
        <ObjectName>filePath</ObjectName> 
        <AbsolutePath>ErrorLog</AbsolutePath> 
      </MsDeploySkipRules> 
    </ItemGroup>
    

    【讨论】:

    • 感谢您的回复。我会尽力让你知道
    • 我在我的 wpp.targets 中添加了您的代码并从团队城市运行上述命令,但结果相同,它没有跳过文件夹名称数据。当我尝试从 vs 2012 运行时,它给了我以下错误 MSDEPLOY(0,0):错误:无法识别的参数“Web”。所有参数必须以“-”开头。
    • Richard 感谢您的帮助,我找到了替代方案,我在 .csproj 文件 Data 中添加了以下代码,它对我有用
    • @user1200750 - 您应该将其添加为单独的答案并将其标记为正确。
    【解决方案3】:

    其实我已经在我的项目中实现了如下:

    <ItemGroup>
            <MsDeploySkipRules Include="SkipDeleteApp_Data_Import">
                <SkipAction></SkipAction>
                <ObjectName>dirPath</ObjectName>
                <AbsolutePath>$(_Escaped_WPPAllFilesInSingleFolder)\\App_Data\\Import</AbsolutePath>
            </MsDeploySkipRules>
        </ItemGroup>
        <ItemGroup>
            <MsDeploySkipRules Include="SkipDeleteApp_Data_File">
                <SkipAction></SkipAction>
                <ObjectName>filePath</ObjectName>
                <AbsolutePath>$(_Escaped_WPPAllFilesInSingleFolder)\\App_Data\\en-US-custom.txt</AbsolutePath>
            </MsDeploySkipRules>
        </ItemGroup>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 2014-12-25
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多