问题标签 [manifest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
762 浏览

asp.net - 具有相同签名的网站上的程序集引用错误

我在 IIS 6 和 Windows Server 2003 上拥有多个 ASP.NET 2.0 网站。每个网站都引用了一些 DLL:设计、逻辑等。每个站点都位于不同的 ApplicationPool 上,具有关于回收技术的默认配置。

每个 DLL 都是强命名的(不延迟)并且有一个永不改变的版本(2.0.0.0),所有的 DLL 都放在 GAC 中。

在我更新 GAC 中的 DLL(即 MyLibrary.dll)后,该 DLL 在某些东西(方法、类..)中发生了变化,以便在网站“A”中使用,并且在仅回收“A”应用程序池之后,当我尝试访问引用相同 DLL 的网站“B”我得到关于该 DLL 的常见错误:

找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

当然,DLL 中没有任何变化,而不是代码、相同的强键、相同的版本、文化。当然,错误在回收“B”应用程序池时消失了。

什么会产生奇怪的、随机的(我不得不说!)行为?还有更多的东西,比如散列,它用于比较程序集?

附录

  • Perpetualcoder问我如何引用 DLL,如果有完整的限定名,我认为是,这里有一行 web.config:

装配="MyNamespace.MyComponent,版本=2.0.0.0,文化=中性,PublicKeyToken=1234567890ASDFGH"

0 投票
2 回答
1585 浏览

windows - 如何使用应用程序的清单指定详细信息?

我正在通过添加清单来升级非托管 C++ 应用程序以使用 XP/Vista 样式的通用控件。根据 MSDN 关于应用程序清单的页面,您需要在清单中指定名称和版本,以及可选的描述:

这些细节是如何使用的?有提到通过具有相同的主要和次要程序集版本来暗示向后兼容性,但这似乎不适用于应用程序。我也无法在 Windows XP 上的应用程序属性中看到清单指定的名称、版本或描述。

改变这些有什么影响?保持版本最新是否值得?

0 投票
1 回答
2540 浏览

manifest - 关于清单文件

最近,我遇到了一个很奇怪的问题,这个问题只发生在 Windows XP SP3 和 Vista 中。这是我的步骤:

  1. 在桌面新建两个文件夹(假设文件夹名称为A和B)
  2. 将 Microsoft GraphEdit ( graphedt.exe) 应用程序复制到 A 文件夹,然后也创建一个空graphedt.exe.manifest文件。运行graphedt.exe,你会看到一条错误信息,graphedt.exe由于清单错误而无法运行。
  3. 将 Microsoft GraphEdit( graphedt.exe) 应用程序复制到 B 文件夹,运行graphedt.exe并关闭它,然后创建一个空graphedt.exe.manifest文件,graphedt.exe再次运行,您将看到清单文件无法应用于graphedt.exe. 但是,如果您更改 的最后修改时间graphed.exe,清单将再次起作用。

似乎 Windows 会在 EXE 第一次使用清单文件时记住该状态,但如果您更改 EXE 大小或上次修改日期,Windows 也会重置旧记住的状态。

0 投票
9 回答
40484 浏览

c++ - 读取应用程序的清单文件?

有没有一种简单的方法来读取应用程序已经嵌入的清单文件?

我在考虑替代数据流的思路?

0 投票
5 回答
59800 浏览

com - 为免注册 COM 生成清单文件

我有一些使用清单文件的应用程序(一些本机,一些 .NET),因此它们可以完全隔离部署,而无需任何全局 COM 注册。例如,对 dbgrid32.ocx com 服务器的依赖在 myapp.exe.manifest 文件中声明如下,该文件与 myapp.exe 位于同一文件夹中:

dbgrid32.ocx 与它自己的 dbgrid32.ocx.manifest 文件一起部署到同一文件夹:

这一切都很好,但是手动维护这些清单文件有点痛苦。有没有办法自动生成这些文件?理想情况下,我只想声明应用程序对 COM 服务器(本机和 .NET)列表的依赖关系,然后让其余的自动生成。是否可以?

0 投票
2 回答
3605 浏览

com - 是否可以将免注册 COM 与 HTA 应用程序一起使用?

由于 HTA 应用程序托管在 MSHTA.exe 中,如何提供清单?另外,我假设提供 MSHTA.exe.manifest 可能会破坏其他 HTA 应用程序?

0 投票
1 回答
2286 浏览

c# - Mageui.exe 中的 dll.manifest 上没有指定入口点

我正在尝试在 DLL 上使用 Visual Studio 2008 中包含的 MageUI.exe 来部署它。当我尝试保存应用程序清单时,每次都会收到“文件页面 - 未指定入口点”消息。如果我在“文件”选项卡上将 dll 设置为入口点,则它不是有效的入口点。我错过了什么?

0 投票
4 回答
1826 浏览

visual-c++ - RunDll32 Problem on Win2k with Visual C++ 2008 Express Compiled DLL

First off, I'm not a C++ programmer (but I am learning). I have finally managed to modify and compile some C++ source code using Visual C++ 2008 Express Edition. I've tried to get the same code compiled in the full version of Visual C++ 2003 without success (I get a wide variety of errors, but no luck).

The problem is that everything is working fine using RunDll32 to call the DLL on Windows Vista, but when I try the same rundll32 call on Windows 2000, I get the following error:

"Error loading mysampledll.dll" "The specified module could not be found."

Of course, I've tried setting the full path, moving the file around, etc...but no luck. I guarantee that the file exists and has the correct permissions.

I thought perhaps that there is something wrong with the manifest that is getting compiled along with the DLL in Vista. So I removed it using a resource editor, but then I get the same error in Vista and Win2k. Here's the manifest:

Now, I assume that the problem is with Win2k not having the Microsoft.VC90.CRT installed, but why does my DLL have this dependency? I've set the "Common Language Runtime Support" to "No Common Language Runtime Support" in the project properties, so why does it still require the CLR? Is there a way to change the manifest to use an older Visual C++ runtime that is available by default in Win2k? Sorry for my ignorance in these matters, and thanks in advance for any help.

0 投票
3 回答
1058 浏览

.net - 构建时如何在 .NET 依赖链上要求 x86

我们有几个项目使用p4.net,一个托管 DLL,它又依赖于 p4dn.dll,一个 32 位非托管 DLL。这在 x64 系统上存在问题,所以我不得不去每个使用 p4.net 的项目并将其处理器类型设置为 x86。

如果我理解正确的问题,那就是当 .NET 加载一个 exe 时,它​​会检查清单,如果没有,它会做最适合处理器类型的任何事情。然后,当它运行到 32 位 dll 时,它会呕吐。

我可以去每个使用 p4.net 的项目并将其标记为 32 位。但是我们有很多这样的。此外,人们将继续制作新的并忘记设置 32 位,然后当其他人尝试在 x64 上使用它时,我们将再次遇到此问题。

我的问题是:有没有办法让 .NET 自动加载任何使用 p4dn.dll 作为 32 位的应用程序?如果做不到这一点,IDE 有没有办法检测到这一点并且无法构建?

或者是否可以制作一个我可以放在 p4api 或 p4dn.dll 旁边的 .manifest 文件,以便使用它们的任何应用程序将自动以 32 位运行?

0 投票
1 回答
1600 浏览

.net - 使用清单打开新控制台窗口提升 UAC 的权限

我正在编写一个控制台工具。如果没有提升 UAC 支持(清单文件)的权限,从命令提示符 ( cmd.exe ) 或控制台文件管理器(如far.exe)调用此工具会在同一窗口中打开它,将其输出写入同一窗口等。

但是现在,当添加清单文件时,在 UAC 请求对话框之后为工具创建了一个新的控制台窗口,因此工具的输出被写入那里,并且窗口关闭。这种工具没有目的是控制台。

如何解决?有哪些解决方法?