当我在我的电脑上编译一个项目时,在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/
文件夹将被替换。不只是删除。
答案 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 引起的。