gpt4 book ai didi

c# - app.manifest 和 assemblyInfo.cs 版本号以及是否需要 app.manifest?

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:30 31 4
gpt4 key购买 nike

我一直在仔细阅读 app.manifest,但我不明白。好吧,我确实知道您需要它来做一些事情,例如:<requestedExecutionLevel level="asInvoker" uiAccess="false" />我们确实需要和使用。但还有这个:

<assemblyIdentity
name="ModuleSimulator"
processorArchitecture="*"
version="1.0.2.1"
type="win32"/>

这是我没有得到的部分,我可以将其忽略而不会有任何后果,对吗?我们已经有了一个 AssemblyInfo.cs,其中包含所有程序集详细信息,其中包括版本:

[assembly: AssemblyVersion("1.0.2.2")]
[assembly: AssemblyFileVersion("1.0.2.2")]
[assembly: AssemblyInformationalVersion("R165Fv001r02")]
[assembly: NeutralResourcesLanguageAttribute("en")]

我们主要针对 Windows 7(目前),但我们可能会在未来开始支持 Windows 10。如果 AssemblyInfo.cs 确保程序集以正确的方式编译,那么 list 文件中的 assemblyIdentity 有什么用。

我确实意识到之前有人问过这个问题,但我似乎不明白。

我认为我理解的是:Windows 应用程序商店也使用 app.manifest.. 验证??应用程序。 (当然还要检查应用程序是否可以运行,因为支持的操作系统版本和执行级别)但我说的是 assemblyIdentity,我不太明白。

最佳答案

应用程序 list 是一个纯粹的非托管实现细节。 C# 编译器确保它作为非托管资源嵌入到最终的可执行文件中。使用"file">“打开”>"file"并选择 EXE 文件时可以看到的内容。

它必须是非托管的,因为操作系统会读取它。只是在可执行文件格式中可以存储的额外配置。一种难以更改的格式,太多使用可执行文件的现有程序将被它瘫痪。

您不应该遗漏 AssemblyIdentity 元素,SDK 文档要求有效的 list 始终包含一个。它不会以其他方式在 .NET 程序中使用,因为它仅在查找非托管 DLL 时发挥作用。所以内容实际上并不重要,您可以使用项目模板生成的样板。

操作系统不知道有关 .NET 属性的 bean,只有 CLR 可以读取它们。你列出的那些确实被 C# 编译器使用,再次创建一个非托管资源。它是 VERSION 资源,您在查看 EXE 文件时也会看到它。它填写了 Details 属性表的详细信息,即您在使用资源管理器查看文件属性时看到的那些。该资源也是 .NET FileVersionInfo 类使用的资源。 super 重要的 [AssemblyVersion] 属性不可见,非常不便。

Store 应用程序中的 appx list 是一个完全不同的鱼缸。同样是一个非托管的细节,操作系统使用它来确定如何将商店应用程序包部署到用户的机器上。以及瓷砖的外观。它需要什么功能,对沙箱很重要。

关于c# - app.manifest 和 assemblyInfo.cs 版本号以及是否需要 app.manifest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390948/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com