Msbuild 使用Web Deploy发布时如何包括umbraco_客户端文件夹?
将Umbraco作为NuGet软件包安装时,Visual Studio项目中仅包含Umbraco文件夹,而不包括Umbraco_客户端文件夹。原因是不应从Visual Studio中引用umbraco_客户端文件夹的内容。但是,在使用Web Deploy发布网站时,我需要部署umbraco_客户端文件夹 一种解决方案是将umbraco_客户端文件夹包含到VS项目中。此解决方案的缺点是,通过NuGet升级Umbraco会变得烦人且容易出错。您必须记住将umbraco_客户端文件夹排除并重新包含到项目中Msbuild 使用Web Deploy发布时如何包括umbraco_客户端文件夹?,msbuild,umbraco,webdeploy,Msbuild,Umbraco,Webdeploy,将Umbraco作为NuGet软件包安装时,Visual Studio项目中仅包含Umbraco文件夹,而不包括Umbraco_客户端文件夹。原因是不应从Visual Studio中引用umbraco_客户端文件夹的内容。但是,在使用Web Deploy发布网站时,我需要部署umbraco_客户端文件夹 一种解决方案是将umbraco_客户端文件夹包含到VS项目中。此解决方案的缺点是,通过NuGet升级Umbraco会变得烦人且容易出错。您必须记住将umbraco_客户端文件夹排除并重新包含到项
那么有更好的方法吗?您可以将以下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>
...
自定义文件;
$(将所有文件复制到SingleFolderForpPackageDependson);
umbraco_客户端\%(递归目录)%(文件名)%(扩展名)
如果您想自动将上述代码添加到所有新的Umbraco项目中,您可以创建自己的NuGet软件包。首先,将Umbraco作为一个依赖项。然后添加生成文件夹和.targets文件。在.targets文件中添加上述代码
有关MSBuild脚本的详细信息,请参阅本文: