msbuild.exe 创建的 bin/fr 文件夹的用途是什么?

时间:2021-01-12 11:16:09

标签: c# visual-studio msbuild

当我在我的电脑上编译一个项目时,在bin文件夹下我有这个文件架构:

bin/
    BS/                                                #I believed it is specific to my project
    fr/                                                #this is the folder that bother me
        Microsoft.Build.Utilities.V3.5.ressource.dll   # the only file under that folder
    fr-FR/
    [...]                                              # lots of .dll and other things
    Microsoft.Build.Utilities.V3.5.dll                 # same dll name as in the fr/ folder except the ".ressource" is missing

fr 和 fr-FR 文件夹可能是这样命名的,因为我的操作系统和 VS 语言是法语。

但是,当我在构建服务器中构建这个项目时,我得到了完全相同的 bin 文件夹,但缺少 fr/ 文件夹。因此 Microsoft.Build.Utilities.V3.5.dll 文件也丢失了。这是唯一的区别。

我想知道这个 fr/ 文件夹的用途是什么,如果它是强制性的,项目是否正常?我正在寻找规范的答案,而不是具体的答案。

编辑:我认为它与附属程序集无关。否则我不会只是缺少构建服务器上的 fr/ 文件夹。我想一个 en/ 文件夹将被替换。不只是删除。

2 个答案:

答案 0 :(得分:1)

它似乎是 MsBuild 消息输出的 Fr 语言 dll,我认为这就是您在构建服务器上看不到它的原因。 见How to change MSBuild error message language?

答案 1 :(得分:1)

我认为您不必太担心这个问题。该问题是由您在两台不同机器上的项目中引用的 Net Framework dll 的语言版本不一致引起的。这只是为dll生成法语资源文件,不会对构建产生任何不利影响。

MSBuild 仍然使用 英语 作为指定语言。您的第一台机器有 installed French version of Net Framework Sdk

Microsoft.Build.Utilities.V3.5.dll 来自 Net Framework SDK

因此,当识别到法语版本的程序集dll时,会自动生成对应的法语版本的资源dll。它的功能只是在法语版中提供说明,对构建没有影响。

当您在另一台服务器上构建项目并安装了英文版的 Net Framework SDK 时,MSBuild 会保持 dll 的相同语言,并且 bin 文件夹中不会生成翻译指令 dll。

而且你必须担心这种行为,这是正常的,无害的,这是由不同机器上不同语言版本的 dll 引起的。

相关问题