忽略MSDeploy和MSBuild

时间:2015-09-22 23:35:25

标签: asp.net msbuild msdeploy

我有一个使用Visual Studio中的“发布网站”功能部署的网站项目。我知道这个功能使用WebDeploy(MSDeploy)调用MSBuild来编译站点。

网站中有一个目录需要被WebDeploy和MSBuild忽略,因为它会破坏网站。

我能够配置部署配置文件(.pubxml)以使WebDeploy忽略目录:

  <PropertyGroup>
    ...
    <ExcludeFoldersFromDeployment>node_modules</ExcludeFoldersFromDeployment>
  </PropertyGroup>

我还能够通过将目录隐藏在文件系统中来使网站编译。

但是,从WebDeploy调用时,我无法让MSBuild忽略该目录。

如果编译网站,我该如何忽略该目录?

更新

编译器在失败时将其记录在输出窗口中:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.WebSite.Publishing.targets(172,5): Error MSB4018: The "CollectFilesinFolder" task failed unexpectedly.

1 个答案:

答案 0 :(得分:1)

您希望应用跳过规则,以便同步过程完全忽略该目录。

将其添加到您的.pubxml文件中:

<ItemGroup>
  <MsDeploySkipRules Include="SkipNodeModules">
    <AbsolutePath>node_modules</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>

如果您遇到问题而无法正常工作,您可能会看到this problem。如果是这样,只需添加:

<PropertyGroup>
  <UseMsDeployExe>true</UseMsDeployExe>
</PropertyGroup>