- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在应用程序的 Visual Studio 项目属性中,有一个选项“创建没有 list 的应用程序”。通过 ClickOnce 部署应用程序时需要此选项, 但我不明白这个选项做了什么,到目前为止我的研究如下......
在禁用该选项并重新编译时,我注意到列出程序集内容的 .NET 程序集 list 仍然完好无损且没有更改。在比较二进制文件时(在 Beyond Compare 中使用十六进制比较模式),我注意到这个 block 已从 EXE 镜像的末尾删除:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
我相信这是一个 Windows 可执行应用程序 list ,如 MSDN ( Application Manifests ) 中所述:
An application manifest is an XML file that describes and identifies the shared and private side-by-side assemblies that an application should bind to at run time.
奇怪的是,上述 XML 中的应用程序名称和版本似乎具有默认值(MyApp,版本 1.0.0.0),而构建此二进制文件的 Visual Studio 项目定义了正确的名称和版本号,所以在我看来,似乎所有 .NET 二进制文件(或无论如何都是 EXE 文件)都嵌入了相同的默认 WindowsEXE list 。是这样吗?我应该在某处设置这些名称和版本值吗?
最佳答案
list 中出现的名称是一个逻辑名称。它不需要实际匹配 EXE 名称。 Windows 仅在您找到的描述中提到的一种情况下使用过它,即“私有(private)并行程序集”情况。
并行程序集在使用 DLL 的非托管应用程序中很重要。它解决了 DLL hell 问题,此类应用不仅通过名称还通过版本检索 DLL。您会在计算机上的 c:\windows\winsxs 中找到这些“程序集”的存储位置。很少有商业程序实际使用此功能,利用起来相当令人头疼,而且文档也很差,您几乎只能在该目录中找到 Microsoft DLL。自 Vista 以来,它变得相当庞大,操作系统 DLL 也存储在那里。
这对您来说可能听起来很熟悉,.NET 也有这样一个并排目录。没有存储在同一个地方,也没有使用相同的名称。我们称之为 GAC,即全局程序集缓存。底层管道在其他方面是相同的,但要更容易利用,因为对 Fusion api 的支持是直接在 CLR 中构建的。并且不需要 list hoopla,.NET 程序集在其程序集元数据中已经具有必要的属性。然而,对于 list 所做的其他事情,.NET 可执行文件中仍然需要 list 。您发布的那个很重要,它告诉 Windows 您的程序是 UAC 感知的,并且在执行诸如在 HKLM 中写入注册表项或将文件复制到 c:\windows 之类的操作时不必被欺骗。应用程序名称和版本在那里,因为它不是可选的。
长话短说,对于 .NET 程序而言, list 中的名称和版本实际上都不重要。
关于.net - 附加到 .NET 程序集的 Windows EXE 应用程序 list 是否应具有正确的应用程序名称和版本集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834271/
我正在努力处理不同的 R 可执行文件。在批处理文件中运行命令行时,R.exe(带或不带 CMD BATCH 选项)、Rcmd.exe、Rscript.exe 和 Rterm.exe 有什么区别? 两者
这个问题是我之前问题的一个答案的扩展:how to save user registration in the exe... (C#) . 这个想法本身对我来说仍然很新,但它似乎是合理的。我第一次尝试
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
我正在使用 React VR 制作一个 WebVR 应用程序。我将使用 Oculus Rift 和 HTC-Vive 测试该应用程序。我正在使用浏览器 Firefox Nightly 来访问 WebV
当我从 A.exe(位于 c:/my_software/FOLDER_A/A.exe)运行 B.exe(位于 c:/my_software/FOLDER_B/B.exe)时,两者均使用 cx_Free
我有一个以前的程序员留下的exe(GUI),它是在cpp中完成的,但是我需要禁用程序中的一些键盘键,因为当它们被意外击中时,这是不可取的。我正在使用 Windows。 我能否编写一个程序来在 Wind
这不是以下 SO 问题的重复: How do I tell if a win32 application uses the .NET runtime . 如果给定的 exe 文件是 .net exe
我刚刚安装了 ActivePython 3.6 的 64 位版本,发现它包含三个可执行文件,它们报告相同的版本信息,大小相同,但不完全相同,即peer fc.exe。我有 python.exe pyt
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
有哪些方法可以保护exe文件免遭逆向工程。有很多打包工具可以打包exe文件。这种方法在http://c-madeeasy.blogspot.com/2011/07/protecting-your-c-
仅当应用“X”(Inspect.exe | Narrator.exe | Magnify.exe)正在运行时,我才能在 Windows 应用程序中获取一些 IUIAutomationElements。
我正在编写一个创建 Windows 服务的程序。所以我需要两个 .exe 文件——一个用于程序,创建服务,另一个用于服务本身。但是我想将这两个文件合二为一。我有以下想法 - 打开 .exe 文件,我想
我有一个 UWP 应用,我需要从 users %appdata% 文件夹中启动一个 .Exe 文件。 我不知道如何找到 %appdata% 或如何启动 Exe 文件。 我已经查看了所有解决方案,但没有
我最近安装了 Visual Studio 2017,MSBuild.exe 不是应该自带的吗? bash 脚本之一正在调用它,但找不到任何东西。 这是 build.bat 产生错误的部分(您可以看到整
我正在我自己的代码中尝试来自 Mad-collections(用于在 exe 中添加/删除或更新资源的单元)中 Madres 单元的不同功能。这适用于小型资源(小于 50 MB),但对于较大的资源(大
什么是PreEmptive Protection Dotfuscator exe文件的Map.Xml和Dotfuscator1.Xml文件。我应该出于某种原因保留它们,还是项目 exe 文件组装需要它
我最近接手了一个项目,我不确定最后一个人是如何调试这个的......我有两个可执行文件,一个最终运行另一个。我将它们称为 exe1 和 exe2。这些是用 C# 创建的,我使用 Visual Stud
如何从 REBOL 脚本创建 Windows 可执行文件 (.exe)?有任何说明或视频吗? 最佳答案 使用 Rebol 2 最简单的方法是使用 SDK - 尽管这需要花钱购买许可证。该方法称为封装。
我正在尝试打开下载的 .exe 文件,但它在打开后立即关闭。有什么可能的方法可以让我打开它更长的时间来阅读内容。 最佳答案 它可能是一个控制台应用程序而不是一个 GUI 应用程序。使用命令提示符运行
我想运行一个位于以下目录中的应用程序: C:\LCR 12\stu.exe 使用 AutoIt,运行上述 stu.exe 文件的代码是什么? 最佳答案 像这样: Run("C:\LCR 12\stu.
我是一名优秀的程序员,十分优秀!