使用 Web Deploy 发布时如何包含 umbraco_client 文件夹?
Posted
技术标签:
【中文标题】使用 Web Deploy 发布时如何包含 umbraco_client 文件夹?【英文标题】:How to include the umbraco_client folder when publishing with Web Deploy? 【发布时间】:2013-06-21 10:26:34 【问题描述】:将 Umbraco 作为 NuGet 包安装时,只有 umbraco 文件夹包含在 Visual Studio 项目中,而不是 umbraco_client 文件夹。原因是不应从 Visual Studio 引用 umbraco_client 文件夹的内容。但是当使用 Web Deploy 发布网站时,我需要部署 umbraco_client 文件夹。
一种解决方案是将 umbraco_client 文件夹包含到 VS 项目中。这个解决方案的缺点是通过 NuGet 升级 Umbraco 很烦人并且容易出错。您必须记住将 umbraco_client 文件夹排除并重新包含到项目中。
那么有更好的方法吗?
【问题讨论】:
【参考方案1】:您可以将以下 MSBuild 脚本添加到 .csproj 文件中。
<Project>
...
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles"]]>
<ItemGroup>
<_umbraco_client_files Include="umbraco_client\**\*" />
<FilesForPackagingFromProject Include="%(_umbraco_client_files.Identity)"]]>
<DestinationRelativePath>umbraco_client\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
如果您想自动将上述代码添加到所有新的 Umbraco 项目中,您可以创建自己的 NuGet 包。首先将 Umbraco 作为依赖项。然后添加一个 Build 文件夹,然后添加一个 .targets 文件。在 .targets 文件中添加上述代码。
有关 MSBuild 脚本的详细信息,请参阅这篇文章:http://blog.samstephens.co.nz/2010-10-18/msbuild-including-extra-files-multiple-builds/
【讨论】:
以上是关于使用 Web Deploy 发布时如何包含 umbraco_client 文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IIS 上配置 Web Deploy 发布功能,以便开发人员可以发布?
如何从使用 mvn deploy 生成的 Maven 源包中排除目标文件夹?