代码之家  ›  专栏  ›  技术社区  ›  Buda Gavril

.net core build生成本地化文件夹

  •  43
  • Buda Gavril  · 技术社区  · 6 年前

    我有一个网页asp。正在使用的net解决方案。net core 2.0。我正在使用命令构建它:

    dotnet publish MySolution.sln --configuration release --output d:\test_output
    

    但当我检查输出文件夹时,我看到了很多本地化文件夹,如下图所示:

    output content

    有没有办法在不生成这些文件夹的情况下发布代码?

    5 回复  |  直到 6 年前
        1
  •  50
  •   Jeremy Caney Abloin    4 年前

    对于使用ASP的项目。NET Core 3.1,将此行添加到 *.csproj 文件:

    <PropertyGroup>   
        <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
    </PropertyGroup>
    

    这篇文章的答案来源: Disable Dll Culture Folders on Compile .

        2
  •  4
  •   Scott Ridings    4 年前

    @Igor提供的解决方案。K为我的API项目工作,但为ASP。NET核心MVC网站在我的解决方案中,我不得不做一个小改动。

    尝试将下面的行添加到 .项目文件 文件

    <PropertyGroup>   
        <ResourceLanguages>en</ResourceLanguages>
    </PropertyGroup>
    

    您可以通过右键单击项目并选择“卸载项目”来编辑此文件。然后,当您再次右键单击时,您将能够编辑。csproj文件。但请确保在完成后重新加载项目。

    所以,如果 卫星资源语言 不能解决你的问题, 资源语言 可能会成功。

        3
  •  2
  •   Lugube    4 年前

    .项目文件 文件,您要查找 “Microsoft.VisualStudio.Web.CodeGeneration.Design” 包引用并添加属性 ExcludeAssets=“全部”

    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" ExcludeAssets="All" />
    

    以下是参考资料: Disable Dll Culture Folders on Compile

        4
  •  1
  •   Eternal21    2 年前

    无论是 SateliteResourceLangauges 也不是 ResourceLangauges 解决方案对我有效。在我的例子中,文件是由以下nuget生成的:

    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" ExcludeAssets="All" />

    粘贴 ExcludeAssets="All" 如上所示解决了问题。

        5
  •  1
  •   Felix    2 年前

    [在net 5.0中]以上所有解决方案都不适用于我。 出于绝望,我补充道:

    <PropertyGroup>   
        <SatelliteResourceLanguages>en-US;en</SatelliteResourceLanguages>
    </PropertyGroup>
    

    还有它 工作 ,绝对不知道为什么