我正在转换VB6应用程序以使用Manifest进行Reg Free部署。
我使用Make My Manifest创建了一个清单,但是当我运行应用程序时出现错误(如下)。
我想确保我的清单在某种程度上无效。 (我打开它看起来很好,除了一些不可打印的字符,这对于XML格式文件来说似乎很奇怪。
** --------------------------- C:\平房\导师\ tutor.exe
好的**
摘自具有不可打印字符的清单
<file name="THREED32.OCX">
<typelib tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" version="1.0" flags="control" helpdir="" />
<comClass clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" progid="Threed.SSCheck" description="A three-dimensional check box. ***\ 1 ª8! DOCUME~1 D ï¾1×°¬:÷ D o c u m e n t s a n d S e t t i n g s *** " />
我删除了所有不可打印的字符
答案 0 :(得分:1)
如果您使用的是Vista / Server08,请在运行应用程序之前从提升的提示中使用sxstrace.exe命令行工具;它可能会为您提供更多信息。
此外,查看Windows事件日志,在那里报告清单解析失败。
我还建议在此问题中添加“regfreecom”标记。
答案 1 :(得分:0)
以下是MSDN Troubleshooting的article部分关于无注册COM的摘录。正如Eugene的回答一样,它建议查看Windows Server中的事件日志(可能带有Virtual PC?)。
首先得到......您的客户正在与之合作 注册服务器;然后取消注册 服务器并验证您的错误 消息是你所期望的;和 最后......制作和部署清单 文件。这样你的故障排除 努力......将局限于 清单文件的结构(和 正确嵌入装配体 如果您选择这样做,则表明。)
免费注册时排除故障 COM问题,事件查看器 Windows Server 2003 是你的朋友...... 在系统事件日志中查找来自COM服务器的事件。 我不建议你看看 Windows XP事件日志... 它总会包含一个 消息......这没有用 找出问题所在。
答案 2 :(得分:0)
我不知道这是否可能是您的问题,但如果您将清单包含在res文件中,我相信它必须具有4字节可以分割的大小(不要问我为什么)
答案 3 :(得分:0)
从版本0.6.7开始,Make My Manifest更好地处理“奇数”字符和符号的转义。这个版本只有0.6.6的一些变化,所以更新不应该导致大多数人有任何问题。
新版本也应该更好地处理大型COM接口版本号。这应该有助于管理界面二进制兼容性(或忽略兼容性)的程序员。
答案 4 :(得分:0)
您可能想要检查您是否在使用不同版本的Visual Studio编译的库中进行链接..(假设您正在使用它)
我有一个与此非常相似的问题...同样的错误消息......我将应用程序从VS2005移动到VS2008之后。这个错误是因为它是在一个独立的解决方案中构建的库中链接的,我没有移动到VS2008。发布版本工作正常,但调试版本遇到此错误。