错误CNDL0027:“文件/@名称"属性的值"apcsystray.exe"不是有效的8.3兼容名称. [英] error CNDL0027 : The File/@Name attribute's value, 'apcsystray.exe', is not a valid 8.3-compliant name.

查看:169
本文介绍了错误CNDL0027:“文件/@名称"属性的值"apcsystray.exe"不是有效的8.3兼容名称.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用WIX 2.0工具集运行Windows Installer构建时,出现以下错误.

When I am running the windows installer build using WIX 2.0 tool set i am getting the below error.

错误CNDL0027:文件/@名称"属性的值"apcsystray.exe"不是有效的8.3兼容名称.合法名称不得超过8个字符,后跟一个可选扩展名 不超过3个字符.可以使用除以下字符以外的任何字符:\? | >< :/*"+,; = [](空格).

error CNDL0027 : The File/@Name attribute's value, 'apcsystray.exe', is not a valid 8.3-compliant name. Legal names contain no more than 8 characters followed by an optional extension of no more than 3 characters. Any character except for the follow may be used: \ ? | > < : / * " + , ; = [ ] (space).

我怀疑这是由于旧版本所致,因为我使用的是Windows 10 32位环境.

I am suspecting that it is due to the old version because i am using windows 10 32 bit environment.

所以我需要迁移代码并使用WIX 3.0版本解决此错误吗?

So do i need to migrate the code and use WIX 3.0 version to resolve this error?

关于, 普拉卡什(Prakash)

Regards, Prakash

推荐答案

WiX 2 :我肯定会将所有WiX 2.0源迁移到WiX 3或WiX 4.仅使用WiX 3.我认为您可以通过节制WiX源来解决此特定问题,而不是对实际主题/问题进行深入研究.如果问我,处理8.3文件名只是浪费时间.如果可以的话,请避免.对于必须处理Windows中所有这些旧的,旧的东西的开发人员,我感到抱歉.

WiX 2: I would definitely migrate any WiX 2.0 sources to WiX 3 or WiX 4. I use WiX 3 only. I think you can solve this particular problem by putting your WiX source on a diet - rather than delve too deep in the actual subject matter / problem. Dealing with 8.3 file names is just a waste of time if you ask me. Avoid if you can. I feel sorry for developers who have to deal with all this old, legacy stuff in Windows.

简化WiX标记 :换句话说,我认为这个问题可以消除而不是解决".因此,请忍受:我喜欢将WiX源文件精简为几乎必要,并允许编译器( candle.exe )和链接器( light.exe ).之所以可以这样做,是因为很多字段只是样板"或多余的,并且总是一起变化".它们也可能是自动生成的.

Simplify WiX Markup: In other words I think this problem can be "removed rather than fixed". So bear with me: I like to slim my WiX source files down to the bare necessities and allow as many fields as possible to be auto-magically added by the compiler (candle.exe) and linker (light.exe). This is possible to do because a lot of fields are just "boilerplate" or redundant and will always "change together". They might as well be auto-generated.

这里是如何在较新的WiX源中删除多余的XML属性的简要说明:

Here is a quick description of how you can remove superfluous XML attributes in newer WiX sources: Syntax for guids in WIX? (recommended read - should be quick).

要点是您可以执行以下操作:

The gist of it is that you can do this:

<Component>
  <File Source="..\File.dll" />
</Component>

代替较老的,更详尽的:

instead of the older, more elaborate:

<!-- Sample guid below, do not copy paste -->
<Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}">
  <File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" />
</Component>

所有缺失的属性将由WiX自动填充-使在"slimmer源"中拾取的编译器和链接器中的任何更改更容易实现.如果出于某种原因需要某个属性,则编译器/链接器/文档将要求您添加该属性.

All the missing attributes will be auto-populated by WiX - making it easier to implement any changes in the compiler and linker that is picked up by your "slimmer source". Should an attribute be needed - for some reason - you will be told to add it by the compiler / linker / documentation.

解决方案? :因此,请尝试删除整个 Name attribute ,看看是否能解决您的问题.我也会尽可能多地删除其他字段(应该使将来的迁移更加容易-也许).

Solution?: Accordingly, please try to remove the whole Name attribute and see if this solves your problem. I would remove as many other fields as possible as well (should make future migration easier - maybe).

这篇关于错误CNDL0027:“文件/@名称"属性的值"apcsystray.exe"不是有效的8.3兼容名称.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆