我有一个使用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.
答案 0 :(得分:1)
您希望应用跳过规则,以便同步过程完全忽略该目录。
将其添加到您的.pubxml
文件中:
<ItemGroup>
<MsDeploySkipRules Include="SkipNodeModules">
<AbsolutePath>node_modules</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
如果您遇到问题而无法正常工作,您可能会看到this problem。如果是这样,只需添加:
<PropertyGroup>
<UseMsDeployExe>true</UseMsDeployExe>
</PropertyGroup>