Articles of 清单

修改InstallShield X的EXE清单(版本10.5)

我InstallScript Project InstallShield X (版本10.5)创build的InstallScript Project 当我使用以下清单从Windows SDK v7.1A运行mt.exe : MySetup.exe.manifest <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level='requireAdministrator' uiAccess='false' /> </requestedPrivileges> </security> </trustInfo> </assembly> 使用以下命令: # wrong file! MySetup.exe will be truncated! mt.exe -manifest MySetup.exe.manifest -updateresource:MySetup.exe;#1 安装程序( MySetup.exe )从MySetup.exe MB MySetup.exe KB。 如何正确地将Admin Privilege Elevation清单embedded到由InstallShield X生成的安装程序中?

“高可用性”和“需要pipe理员”之间在高程方面的差异?

我在我的EXE的清单中使用“highestAvailable”。 但在standard user and UAC ON它不升级exe。 这是“highestAvailable”的行为? 我提到了这个MSDN链接,但不清楚“最高可用”是否会提升exe文件。 我的要求是提升exe如果UAC是。 我改为“requireAdministrator”,我的EXE在UAC ON的标准用户中得到提升。 有人可以详细解释这两个选项“highestAvailabe”和“requireAdministrator”的提升行为吗?

从dll函数调用正确获取Windows版本?

假设我正在写一个多用途的dll,其中包含一个获取操作系统版本的函数: void get_os_version(DWORD *major, DWORD *minor) { OSVERSIONINFOEX osvi; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOsVersionInfoSize = sizeof(OSVERSIONINFOEX); // deprecated but easier to use for this example's sake GetVersionEx((OSVERSIONINFO*)&osvi); *major = osvi.dwMajorVersion; *minor = osvi.dwMinorVersion; } 对于Windows版本高于Windows 8的版本,需要embedded一个指定受支持平台的清单(请参阅此处的详细信息)。 所以我在编译时使用/MANIFEST:NO标志禁用自动生成我的dll文件/MANIFEST:NO ,而是添加下面的清单: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> […]

应用程序签名/validation

我对Windows开发比较陌生,但刚刚完成了一个小项目。 我想让我的应用程序像许多其他应用程序一样被“validation”。 例如,当您启动应用程序并popupUAC时,将不会出现带有黄色条的“发布者未知”消息,并且应该有一个“validation者:”部分。 我希望我解释正确。 有谁知道如何做到这一点? 我希望它不像SSL证书,你必须付钱… 如果我的问题不清楚,或者我没有正确的解释,请随时告诉我。 谢谢!

可以编辑InstallShield setup.exe的清单文件吗?

我遇到了下面介绍的Windows Vista / 7程序兼容性助手问题: Windows 7 RC中的“该程序可能没有正确安装”消息 该解决scheme(由其他地方的类似问题和MSDN备份)显然是为setup.exe的清单添加一个“兼容性”部分。 InstallShield 10 SP1自动执行此操作,但不幸的是我只有InstallShield 2009。 我将如何去编辑清单? 有没有办法做到这一点编程,所以我可以将其集成到我的构build?

诊断Windows应用程序清单

Windows应用程序清单有一个非常宽松的语法 – 无法识别的部分被忽略。 我如何诊断哪些部件被识别,哪些不是? 导致此问题的问题是具有指定了highestAvailable的requestedExecutionLevel的并行 UAC清单的应用程序。 这应该closuresVista文件虚拟化,但它不会。 我想找出原因。 正在使用清单,因为我通过故意引入语法错误来检查,但是我看不出如何使用它。

如何为Qt独立应用程序创build清单文件

我正在按照本指南构build一个带有静态链接的Qt独立应用程序。 除了最后一步之外,我还执行了其他步骤,其中包括将清单embedded到可执行文件中,并且应用程序可以在许多机器上正常运行。 但是,我发现其中一个可执行文件无法启动,因为MSVCP140.dll从计算机中丢失。 这是错误很可能是由于我没有包括清单的事实。 事实上,在上面的指南中明确写道: 你应该执行mt.exe来在应用程序中embedded一个清单,以避免错误,例如当应用程序在其他计算机上启动时丢失MSVCP90.dll 我的两个问题是: 清单文件在这种情况下的function是什么? 为什么在某些机器上,应用程序运行时没有它,而对于其他应用程序呢? 据我所知,Visual Studio安装在用于testing的计算机上。 如何为我的Qt应用程序生成这样的文件? 我遵循指南的步骤,没有.manifest文件是自动生成的。 因此,我假设在构buildQt的静态版本时我错过了某些东西,或者我应该使用一些外部工具来完成这个工作。 例如,我看到Mage.exe可以用来生成清单,但我不知道是否正确的方法去我的情况。

在windows上构build和部署dll:SxS,清单和所有爵士乐

从VS 2005开始,我发现不可能简单地针对MS运行时构build一个DLL并将其部署在一起( http://www.ddj.com/windows/184406482 )。 我对表单SxS和Co深感困惑:MSDN文档非常差,带有循环引用; 特别是因为我更像一个Unix的家伙,我发现所有这些都是不知情的。 我的核心问题是链接到msvc9或msvc8 DLL:因为这些运行时不可重新分发,有什么步骤来链接和部署这样一个DLL? 特别是,如何生成清单(我不想mt.exe,我想要在编译器中移植的东西),它们是如何embedded,使用的? 并排组装是什么意思? 基本上,我在哪里可以find任何types的规范,而不是MS行话? 感谢所有回答的人,这真的很有帮助,

阅读应用程序的清单文件?

有没有简单的方法来读取应用程序已经embedded的清单文件? 我正在考虑一个备用数据stream的线?

显示应用程序中被忽略的清单

我有一个老式的Windows GDI应用程序,用C编写,正在用Mingw工具链编译。 我的一些用户一直在抱怨Windows Vista和Windows 7的虚拟商店,其中写入应用程序不应访问的目录的文件被虹吸掉并存储在别处。 他们说这让他们感到困惑,而他们宁愿有一个错误。 根据微软的文档,防止这种情况发生的方法是添加一个应用程序清单。 不幸的是,这似乎没有做任何事情。 我的清单是: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <description>WordGrinder</description> <assemblyIdentity version="1.0.0.0" name="WordGrinder"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> …和引用它的资源文件是: CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "src/c/arch/win32/manifest.xml" 101 ICON DISCARDABLE "src/c/arch/win32/icon.ico" (并不复杂,你可以看到。)资源文件是用windres编译的,并以通常的方式链接到我的应用程序。 图标显示出来,所以我相信至less这一点是正确的。 还有什么我需要做的,让清单得到尊重?