首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual C++ 2022、Microsoft和MSIX清单问题

Visual C++ 2022、Microsoft和MSIX清单问题
EN

Stack Overflow用户
提问于 2022-01-07 09:50:50
回答 1查看 231关注 0票数 2

嗨!

有人能回答我的问题吗?我有一个可视化C++应用程序链接到C++ DLL运行时。通过MSIX打包工具将其转换为Microsoft应用程序。问题是关于MSIX清单:对于WindowsSDK10.0.19041.0和VC+ 2022,这个XML片段正确吗?

代码语言:javascript
复制
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.22000.376" />
<PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

我非常感谢大家的支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 21:44:21

代码语言:javascript
复制
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.22000.376" />

TargetDeviceFamily告诉AppInstaller运行时,您测试过的应用程序的最低版本是10.0.19041,即2020年5月更新(2004 / 20H1)。它并不直接连接到您已经编译过的SDK (因为您可以针对一个更新得多的SDK,但是要小心地避免调用更新的API,除非它们可用)。

代码语言:javascript
复制
<PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

PackageDependency很难找到信息,因为版本号似乎不在任何地方列出(并且与14.31.31103.0的VisualStudio2022 C++运行时版本不匹配)。然而,我找到了下一页,它描述了“通用Windows的侧加载”,并列出了[Program Files (x86)]\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\。查看一下这些目录,我可以看到以下文件:

C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\SDKManifest.xml

该文件包含以下内容:

代码语言:javascript
复制
<FileList TargetPlatform="UAP" 
  FrameworkIdentity-Debug = "Name = Microsoft.VCLibs.140.00.Debug.UWPDesktop, MinVersion = 14.0.30035.0, Publisher = 'CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US'" 
  FrameworkIdentity-Retail = "Name = Microsoft.VCLibs.140.00.UWPDesktop, MinVersion = 14.0.30035.0, Publisher = 'CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US'" 
  MinVSVersion = "14.0" 
  TargetPlatformMinVersion="10.0.0.0" 
  TargetPlatformVersion="10.0.0.0" 
  DisplayName = "Visual C++ 2015-2019 UWP Desktop Runtime for native apps" 
  AppliesTo = "WindowsAppContainer + (Managed | Javascript | Native)" 
  AppX-Debug-ARM = ".\AppX\Debug\ARM\Microsoft.VCLibs.ARM.Debug.14.00.Desktop.appx" 
  AppX-Debug-ARM64 = ".\AppX\Debug\ARM64\Microsoft.VCLibs.ARM64.Debug.14.00.Desktop.appx" 
  AppX-Debug-x86 = ".\AppX\Debug\x86\Microsoft.VCLibs.x86.Debug.14.00.Desktop.appx" 
  AppX-Debug-x64 = ".\AppX\Debug\x64\Microsoft.VCLibs.x64.Debug.14.00.Desktop.appx" 
  AppX-Retail-ARM = ".\AppX\Retail\ARM\Microsoft.VCLibs.ARM.14.00.Desktop.appx" 
  AppX-Retail-ARM64 = ".\AppX\Retail\ARM64\Microsoft.VCLibs.ARM64.14.00.Desktop.appx" 
  AppX-Retail-x86 = ".\AppX\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx" 
  AppX-Retail-x64 = ".\AppX\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx" 
  SupportsMultipleVersions="Error" 
  SupportedArchitectures="x86;x64;ARM;ARM64"> 
 </FileList> 

如您所见,它提到了14.0.30035.0。我已经安装了VisualStudio2022(以及VisualStudio2019),所以我假设14.0.30035.0与最近的版本有关。

附加:可能不是最好的假设,使用PowerShell我可以看到当前安装了哪些版本:

代码语言:javascript
复制
Get-AppxPackage -Name "*VCLib*" | Select-Object -Property Name, Version, Architecture | Where-Object {$_.Architecture -eq 'X64'}

Name                                     Version      Architecture
----                                     -------      ------------
Microsoft.VCLibs.140.00                  14.0.27810.0          X64
Microsoft.VCLibs.140.00                  14.0.29231.0          X64
Microsoft.VCLibs.140.00.Debug.UWPDesktop 14.0.29231.0          X64
Microsoft.VCLibs.140.00.Debug            14.0.29231.0          X64
Microsoft.VCLibs.140.00                  14.0.30035.0          X64
Microsoft.VCLibs.140.00.UWPDesktop       14.0.30035.0          X64
Microsoft.VCLibs.140.00                  14.0.30704.0          X64
Microsoft.VCLibs.140.00.UWPDesktop       14.0.30704.0          X64

如您所见,在我的机器上实际安装的最高版本号是14.0.30704.0

进一步:I做了一些实验,发现使用VisualStudio2022构建一个应用程序,并将其打包成一个依赖于14.0.30035.0的MSIX,将运行在Windows102004(2020年5月)的干净安装上。因此,我认为14.0.30035.0是VisualStudio2022的正确运行时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70619412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档