gpt4 book ai didi

visual-studio - 如何将特定文件夹部署为包

转载 作者:行者123 更新时间:2023-12-04 05:52:58 25 4
gpt4 key购买 nike

我有一个通过 npm 命令构建的 asp.net MVC 项目和前端。

并在构建后提供应用程序文件夹。 enter image description here

此文件夹不包含在我的 csproj 文件中。

当我从 teamcity 部署时,我使用 2 个步骤。

  1. 发布申请
  2. /app 文件夹的 FTP 部署(每个文件单独)

但是ftp部署非常非常慢。如何将此文件夹部署为“包”?

也许我可以动态地将它包含到 csproj 文件中,或者是其他东西?

最佳答案

But ftp deployment very very slow. How can I deploy this folder as 'package' ?

的确,FTP 部署一个有很多文件的文件夹会比较慢。因为它只开单线程,而且一次只上传一个文件。您可以考虑通过 MSBuild 目标压缩该文件夹:

  <ItemGroup>
<Content Include="app\**\*.*" />
</ItemGroup>

<Import Project="..\.build\MSBuild.Community.Tasks.Targets" />

<Target Name="AfterBuild">
<PropertyGroup>
<ZipPackagePath>bin</ZipPackagePath>
</PropertyGroup>
<Zip Files="@(Link)" WorkingDirectory="$(ZipPackagePath)" ZipFileName="output\ZipName.zip" ZipLevel="9" />
</Target>

注意:您需要添加 nuget 包“MSBuildTasks”,您可以将 ReleasePath 更改为其他文件夹。

但是您仍然需要在 FTP 部署后解压缩该 zip 文件。

Perhaps I can dynamically include it to csproj file, or something else?

或者,您可以将其动态包含到您的项目文件中,这是我们推荐的方法。

要完成此操作,请卸载您的项目。然后在项目的最后,就在结束标记之前,放置以下脚本:

  <Target Name="AddAppFiles" AfterTargets="Build">
<ItemGroup>
<Content Include="app\**\*.*" />
</ItemGroup>
</Target>

发布后,app文件夹包含在目标位置:

enter image description here

注意:

  1. 有了这个目标,文件夹app不会出现在解决方案资源管理器中(动态包含)。

  2. 如果app构建完成后生成文件夹,可以更改 AfterTargets="Build"BeforeTargets="_CheckForInvalidConfigurationAndPlatform" ,比如:

<Target Name="AddAppFiles" BeforeTargets="_CheckForInvalidConfigurationAndPlatform">

关于visual-studio - 如何将特定文件夹部署为包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47391591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com