错误 本地化变量 !(loc.EMRDataServiceDescription) 未知。请确保变量已定义

Posted

技术标签:

【中文标题】错误 本地化变量 !(loc.EMRDataServiceDescription) 未知。请确保变量已定义【英文标题】:Error The localization variable !(loc.EMRDataServiceDescription) is unknown. Please ensure the variable is defined 【发布时间】:2018-09-26 10:52:25 【问题描述】:

当我从 Visual Studio (Votive) 构建我的 WIX 项目时,我收到以下错误:

严重性代码描述项目路径文件行列源抑制状态 错误 本地化变量 !(loc.EMRDataServiceDescription) 未知。请确保已定义变量。 EMR4.0.1 E:\Code\EMR\EMR4\EMR4.0.1\EMR4.0.1 E:\Code\EMR\EMR4\EMR4.0.1\EMR4.0.1\EMR_WiX_Installer_EN.wxs 76 1 构建

我在“ServiceInstall”元素的以下代码 sn-p 中使用“EMRDataServiceDescription”。

EMR_WiX_Installer_EN.wxs 文件

  <Component Id="DataServiceExeComponent" Guid="6F0AFA7E-77EA-11E0-A3DF-5DD64824019B" >
              <Condition><![CDATA[REINSTALLMODE<>"ecmus"]]></Condition>
              <File Id="EXECUTABLE2" Name="dataserv.exe" Source="$(var.DataServiceFile)" DiskId="1" KeyPath="yes" DefaultSize="7121522" DefaultVersion="4.3.0.0.1170.S" />
              **<ServiceInstall Id="InstallEMRDataService" Name="EMR Data Service" DisplayName="EMR Data Service"  Type="ownProcess" Start="auto" ErrorControl="normal" Description="!(loc.EMRataServiceDescription)">**

                <ServiceDependency Id="EMR UPS Service"/>

              </ServiceInstall>

这是在 WixUI_en-us.wxl 文件中声明的,如下所示:

 <String Id="EMRDataServiceDescription" Overridable="yes">Service for managing data operations.</String>

命名空间如下图所示:

<WixLocalization Culture="en-us" xmlns="http://wixtoolset.org/schemas/v4/wxl" Codepage="1252">

在此错误之前,我通过使用“构建操作”中的设置修复了以下错误。

错误本地化标识符“EMRDataServiceDescription”已在多个位置重复。请解决冲突。 EMR4.0.1 light.exe 0 1 编译

以下是我做的设置:

右键单击 .wxl 文件 点击属性。 在“构建操作”下: 将“EmbeddedResource”更改为“None”

我是否遗漏了什么或错误是由于我所做的设置?

【问题讨论】:

请提供您对此的看法。 【参考方案1】:

问题场景:有点不清楚到底发生了什么,但我认为你必须:

1) 或者有一个不是 English 的其他语言的本地化文件,它缺少您引用的标识符:"APCDataServiceDescription",而您尚未将其从构建中排除,或 2)您已将"Build Action"的英文本地化文件设置为"None"

可能的解决方案:首先将 English 位置文件设置为 "EmbeddedResource" >"Build Action" 如果这还不是当前设置。接下来,您可以通过在 Visual Studio 的解决方案资源管理器窗格中右键单击您的 WiX 项目来选择要构建的文化,然后转到 Properties 并转到 "Build" 选项卡.现在将 "Cultures to build" 字段设置为 "en-US" 以便仅构建 English(或将其设置为您的文化值主 WiX 项目文件 - 可以是任何文化):

现在尝试构建,看看英文版是否正确编译。

【讨论】:

我相信您的一个本地化文件中存在错误,导致此错误消息。这可能很简单,例如拼写错误 ID4TEST 变成 IE4TEST - 类似的东西很难看到。我会尝试按顺序构建每种文化,以缩小哪个文件有问题的范围。你建立了多少种文化? 是的,我相信是这样 - 除非我可能不知道任何其他本地化问题。

以上是关于错误 本地化变量 !(loc.EMRDataServiceDescription) 未知。请确保变量已定义的主要内容,如果未能解决你的问题,请参考以下文章

由于变量是本地而不是全局而导致的运行时错误

为啥 Python 会在 Pygame 中为“事件”变量抛出未绑定的本地错误? [关闭]

无法连接到本地 PHP 站点(未定义索引和未定义变量错误)[重复]

本地从0搭建Stable Diffusion WebUI及错误记录

在 shell 命令中使用本地 perl 变量

prisma 容器中的 AWS ECS 错误 - 环境变量 PRISMA_CONFIG