visual-studio - 添加 umbraco 文件夹以使用 MsBuild 构建
问题描述
如果我使用 msbuild 构建我的项目,我的解决方案中未包含的所有文件夹都不会部署。有没有办法使用 msbuild部署umbraco
和文件夹?umbraco_client
我尝试过使用以下目标:
https://gist.github.com/aaronpowell/6695293
我们如何将ajaxmin创建的文件包含在MSBuild创建的msdeploy包中
https://blog.samstephens.co.nz/2010/10/18/msbuild-including-extra-files-multiple-builds/
但是,它们并没有被复制到输出文件夹中。我错过了什么吗?
解决方案
您可以使用msbuild 目标(在构建结束后运行),在该目标中它调用msbuild 复制任务将必要的文件或文件夹复制到输出文件夹。使用AfterTargets="build"让目标在构建之后运行。
在我的机器上运行的目标脚本如下所示:
<Target Name="Copyumbraco" AfterTargets="build">
<ItemGroup>
<UmbracoFiles Include="$(ProjectDir)**\umbraco\**\*" />
<Umbraco_ClientFiles Include="$(ProjectDir)**\umbraco_client\**\*" />
</ItemGroup>
<Copy SourceFiles="@(UmbracoFiles)" DestinationFolder="$(OutputPath)\%(RecursiveDir)"/>
<Copy SourceFiles="@(Umbraco_ClientFiles)" DestinationFolder="$(OutputPath)\%(RecursiveDir)"/>
</Target>
使用$(ProjectDir)
属性来定义路径,因此如果project folder
您在评论中提到这两个文件夹,Msbuild 可以找到它们。
\%(RecursiveDir)
设置 msbuild复制任务以将文件复制到具有原始文件夹结构的目标路径。如果您只想将所有文件复制到输出文件夹,则不需要设置它,那么脚本应该是:
<Target Name="Copyumbraco" AfterTargets="build">
<ItemGroup>
<UmbracoFiles Include="$(ProjectDir)**\umbraco\**\*" />
<Umbraco_ClientFiles Include="$(ProjectDir)**\umbraco_client\**\*" />
</ItemGroup>
<Copy SourceFiles="@(UmbracoFiles)" DestinationFolder="$(OutputPath)"/>
<Copy SourceFiles="@(Umbraco_ClientFiles)" DestinationFolder="$(OutputPath)"/>
</Target>
将目标脚本添加到您的项目project file
(xx.csproj)中,确保将脚本按以下格式放置,然后在您使用msbuild构建项目时它可以工作。
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<Target Name="Copyumbraco" AfterTargets="build">
...
</Target>
</Project>
此外:
对于控制台应用程序、类库等普通项目,$(OutputPath) 表示输出路径。但是对于网站项目,我们可以使用$(WebProjectOutputDir)
,来自马里奥的提示!
推荐阅读
- c# - 在包装 C# .Net DLL 的 C++ 包装器中将 System::String^ 转换为 wchar_t
- docusignapi - 如何让 Docusign 只读复选框选项卡不呈现损坏
- mongodb - 同时对 MongoDB 中的两个字段进行排序
- deployment - 如何更新 Kubernetes 部署映像和命令?
- ios - 用于写入更大 CSV 文件的 CHCSVWriter 内存使用情况
- c# - 我如何调试在外部 C# 应用程序中 SWIGed 的 C++ DLL(不能从调试器启动)
- python - 我尝试使用刮刀从页面中提取内容时出错
- javascript - 捕捉回调异步函数完成的时刻
- flutter - Dismissible widget animation overlaps page push animation
- excel - 使用 oXMLFile.SelectNodes 的唯一节点值