[英]Application manifest for 64 bit applications
我創建了一個 64 位 Windows 應用程序,並希望包含一個應用程序清單。
我比較了其他供應商的幾個 DLL,例如 shell32.dll ,發現他們將值“x86”設置為processorArchitecture
; 例子:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="...."
processorArchitecture="x86"
version="...."
type="win32"/>
<description>....</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
我的問題:
64 位應用程序獲得帶有 processorArchitecture="x86" 的清單真的可以嗎?
Microsoft 將處理器架構描述如下:
指定處理器。有效值為 32 位 Windows 的 x86 和 64 位 Windows 的 ia64。可選的。
這讓我很困惑。 為什么 amd64 / x86-64 沒有列出? 我有一個 64 位 Windows,但我沒有 Intel Itanium 架構。
2021 年 7 月:Microsoft 已更新說明。 新的描述是:“指定處理器。有效值包括 x86、amd64、arm 和 arm64。可選。”
Windows 10 不會檢查標識您的應用程序的processorArchitecture
屬性。您可以省略它。
該屬性在dependentAssembly
元素下必須具有正確的值。 但是,為了簡單起見,您可以使用processorArchitecture="*"
。
如果你想明確一點, amd64
是 x86-64 架構的正確值。 僅記錄ia64
顯然是 Microsoft 文檔中的一個遺漏。 我已經提交了一個pull request來糾正這個問題。
shell32.dll
在我的 Windows 10 副本中指定amd64
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.