【发布时间】:2015-10-23 21:28:22
【问题描述】:
我在从 wxm 文件生成 msi 文件时遇到了以下错误。
candle.exe 错误 CNDL0027:File/@Name 属性的值 testdata.value.dll 不是符合 8.3 的有效名称。
以下解决方案无效。 在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 将值 NtfsDisable8dot3NameCreation 更改为 1
注意:我使用的是candle.exe 版本 2。我的机器是 64 位的,装有 windows 10。
知道要设置或更改什么来解决问题吗?
更新 1: 尝试使用 FSUTIL.EXE 8dot3name 2.
FSUTIL.EXE 8dot3name 查询 E: 卷状态为:0(启用 8dot3 名称创建)。 注册表状态为:2(每卷设置 - 默认值)。
基于以上两个设置,在E上启用8dot3名称创建:
结果:我可以使用 dir /x 看到文件的短名称
问题:我仍然收到“错误 CNDL0027:File/@Name 属性的值 testdata.value.dll 不是符合 8.3 的有效名称”
【问题讨论】:
-
我想说这很清楚:文件是 14.3 而不是 8.3。保持注册表不变,打开 shell 并在存储文件的目录中键入“dir /x”
-
是的文件大于 8。'testdata.value.dll' 名称只是示例。实际文件名大于那个。您建议的命令只是列出特定目录下的文件。那不是我的问题。有我正在传递 wxm 文件的命令蜡烛.exe。此 wxm 文件包含“testdata.value.dll”名称。如果 wxm 文件中的文件名不适合 8.3,则会引发上述错误。我的问题是如果我禁用 'NtfsDisable8dot3NameCreation' 那么我不应该得到错误。但我仍然收到错误。
-
不。您需要将注册表值恢复到其原始状态。然后 Windows 将创建两个文件名:一个长文件名和一个 8.3 文件名。使用
dir /x,您将看到长文件名的 8.3
标签: c# wix windows-installer