【发布时间】:2019-01-29 19:51:05
【问题描述】:
当 .NET 应用程序提供用户界面时,特定于语言的资源(如文本)由 .net resource/satellite assemblies 提供。然后由不同的程序集提供不同语言的文本资源。 当satellite assemblies 仅包含资源并且没有必须为特定平台执行/编译的代码时 - 目标平台 (x86/x64/AnyCPU) 重要还是被忽略?
【问题讨论】:
当 .NET 应用程序提供用户界面时,特定于语言的资源(如文本)由 .net resource/satellite assemblies 提供。然后由不同的程序集提供不同语言的文本资源。 当satellite assemblies 仅包含资源并且没有必须为特定平台执行/编译的代码时 - 目标平台 (x86/x64/AnyCPU) 重要还是被忽略?
【问题讨论】:
对于纯程序集(那些不是不安全的,并且不使用互操作的),位在清单中是有点的,不会影响代码生成。出于这个原因,纯卫星程序集应该针对任何 cpu。
c# 进程的位数通过它如何与位数标志一起启动来推断:因此,只有在整个应用程序中使用纯程序集并且运行时不存在副作用时,入口点程序集才应针对任何 cpu在一个平台上而不是另一个平台上。在所有其他情况下,它们应该针对正确的平台。
在程序集探测期间不会忽略位数,因此如果 32 位可执行文件需要 64 位程序集,则不会找到该程序集并引发异常。与平台无关的程序集被认为是“过程所期望的”。
【讨论】: