【问题标题】:How to set MSDeploy settings in .csproj file如何在 .csproj 文件中设置 MSDeploy 设置
【发布时间】:2011-08-17 23:30:47
【问题描述】:

有没有办法在 ASP.NET MVC 项目的 .csproj 文件本身中设置 MSDeploy 参数?特别是“skip”参数,它应该跳过“Temp”文件夹。

-skip:objectName=dirPath,absolutePath="\\temp"

.. 或者如何将此参数传递到 MSBuild.exe 参数列表中?

【问题讨论】:

  • 您的目标是如何定义的?您明确运行 msbuild.exe 吗?
  • MSBuild.exe 由 TFS 构建服务器执行,参数类似于:/p:DeployOnBuild=true;DeployTarget=MsDeployPublish;MSDeployPublishMethod=WMSVC;MsDeployServiceUrl=...
  • 你能像 msbuild.exe /p:absolutePath="\\temp" 那样显式添加一个参数吗?
  • 我不这么认为,因为 absolutePath 是 -skip 参数的值,应该传递给 msdeploy.exe
  • 当我尝试这个时,我得到“无法识别的跳过指令'skipaction'”。在构建中。我错过了什么?

标签: c# asp.net asp.net-mvc-3 deployment msdeploy


【解决方案1】:

在项目文件中定义<MsDeploySkipRules>。例如:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <OnBeforePackageUsingManifest>AddSkipRules</OnBeforePackageUsingManifest>
  </PropertyGroup>
  <Target Name="AddSkipRules">
    <ItemGroup>
      <MsDeploySkipRules Include="SkipTempDirOnDeploy">
        <SkipAction></SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_Escaped_PackageTempDir)\\Temp$</AbsolutePath>
        <XPath></XPath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>
</Project>

【讨论】:

  • 为了在部署期间通过 Visual Studio“发布”功能工作,必须使用 AfterAddIisSettingAndFileContentsToSourceManifest 而不是 OnBeforePackageUsingManifest。见评论blog.alanta.nl/2011/02/…
  • 当我尝试这个时,我得到“无法识别的跳过指令'skipaction'”。在构建中。我错过了什么?
  • 我觉得应该是“Delete
  • 我试过“Delete”,但也没有用。我必须完全删除 SkipAction 元素。另外,感谢 Anthony Serdyukov 的评论。这非常有用。
猜你喜欢
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
  • 2020-08-07
  • 2014-01-06
  • 1970-01-01
相关资源
最近更新 更多