【问题标题】:How to exclude all folders containing Csla.Resources.dll from publish in dot net core?如何从 dot net core 中的发布中排除包含 Csla.Resources.dll 的所有文件夹?
【发布时间】:2017-10-01 12:58:56
【问题描述】:

我正在使用带有 dot net core 2.0 的 CSLA 框架。

当我使用发布配置发布 (dotnet publish -c Release -r ...) 时,附加文件夹 (tr、sv、sr) 仅举几例,其中包含 Csla.Resources.dll,它们被复制到输出发布文件夹 ( ~/bin/Release /netcoreapp2.0/centos.7-x64/publish)。

dotnet publish 执行完毕后,如何排除这些文件夹(连同文件)或从发布文件夹中删除它们?

注意 在部署过程开始之前,文件“Csla.resources.dll”不存在。 它会在dotnet publish 启动时生成。

【问题讨论】:

  • @ITGoran,这个问题怎么样?你解决了这个问题吗?如果没有,请告诉我这个问题的最新状态吗?
  • @Leo-MSFT 我现在尝试了 Martin Ullrich 提供的答案,但它不起作用,因为文件“Csla.resources.dll”是在“dotnet 发布”过程中生成的并且不存在之前。
  • 我认为这实际上与 Csla 无关;我猜任何提供本地化资源程序集的程序集都会发生这种情况。
  • @Andy 我认为你是对的,我使用 Cake 脚本来删除不需要的资产。

标签: msbuild .net-core visual-studio-2017 csla


【解决方案1】:

dotnet publish 执行完成后,如何排除这些文件夹(与文件一起)或从发布文件夹中删除它们?

根据以下文件:

https://docs.microsoft.com/en-us/aspnet/core/publishing/web-publishing-vs?tabs=aspnetcore2x

您可以使用CopyToPublishDirectory="Never" 排除文件和文件夹:

<ItemGroup>
  <Content Update="wwwroot/content/**/*.*" CopyToPublishDirectory="Never" />
</ItemGroup>

【讨论】:

    【解决方案2】:

    如果您不知道这些文件的确切位置,您可以使用 msbuild 通过将其添加到 csproj 文件中来排除找到的所有文件夹:

    <ItemGroup>
      <_CslaResourcesAssemblies Include="**/Csla.Resources.dll" />
      <Content Update="@(_CslaResourcesAssemblies->'%(RecursiveDir)**')" CopyToPublishDirectory="Never" />
    </ItemGroup>
    

    【讨论】:

      猜你喜欢
      • 2019-07-12
      • 2020-08-20
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 2017-07-18
      • 1970-01-01
      • 2017-06-08
      相关资源
      最近更新 更多