问题标签 [assemblies]

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 投票
4 回答
342 浏览

.net - 装配问题/难题中的只读与属性

如何在程序集 (DLL) 之外为使用 DLL 的人创建一个“只读”属性,但仍然能够从程序集中填充该属性以供他们阅读?

例如,如果我有一个Transaction对象,当Transaction对象发生某些事情时,它需要填充Document对象(这是Transaction类的子类)中的属性,但我只想开发人员使用我的 DLL能够读取该属性而不更改它(它只能从 DLL 本身中更改)。

0 投票
3 回答
715 浏览

assemblies - 汇编中模块的逻辑分组是什么意思?

汇编中模块的逻辑分组是什么意思?谁能解释一下.NET的CLR如何与程序集一起工作?

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 投票
1 回答
1689 浏览

visual-studio - 如何在 VS2005 自动生成的互操作程序集中保留 COM DLL 版本?

我在 Visual Studio 2005 中的 C# 项目中添加了对同事的 COM DLL -- MyLogic.dll -- 的引用。正如预期的那样,这会在我的输出文件夹中自动生成 Interop.MyLogicLib.dll。但是,COM DLL 的版本号是 2.1.0.180,而自动生成的互操作程序集的版本号是 1.0.0.0。如何让 Visual Studio 保留原始版本号?

就目前而言,1.0.0.0 版本号让我在安装产品时感到悲痛。安装程序拒绝覆盖早期版本的互操作 DLL,因为新旧副本都有 1.0.0.0 版本。

顺便说一句,我尝试使用“tlbimp /asmversion:2.1.0.180 MyLogic.dll”在命令行手动生成程序集,但是:

  1. 我的项目拒绝使用手动生成的程序集进行构建,说我正在使用的类型是在一个名为 Interop.MyLogicLib.dll 的未引用程序集中定义的(我手动制作的没有“Interop.”前缀)。不得不承认,我不明白这一点。
  2. 我需要提前知道版本号,而不是让工具从 COM DLL 中读取它
  3. 这是一个手动过程,这很糟糕

无论如何,Visual Studio 肯定可以跨 COM 版本号自动复制吗?

更新:道歉;我似乎重复了另一个问题。老实说,我确实先搜索了一个现有的。我只是错过了。:(

0 投票
2 回答
38410 浏览

.net - 你如何循环当前加载的程序集?

我的 ASP.NET 应用程序中有一个“诊断”页面,它执行诸如验证数据库连接、显示当前 appSettings 和 ConnectionStrings 等操作。此页面的一部分显示了整个使用的重要类型的程序集版本,但我无法弄清楚如何有效地显示所有已加载程序集的版本。

找出.NET 应用程序中所有当前引用和/或加载的程序集的最有效方法是什么?

注意:我对基于文件的方法不感兴趣,比如在特定目录中迭代 *.dll。我对应用程序现在实际使用的内容感兴趣。

0 投票
3 回答
1633 浏览

.net - 引用子文件夹中的私有 .net 程序集

在 Visual Studio 2008 中,我可以添加项目引用并将 Copy Local 属性设置为 true。结果,引用的程序集将被复制到构建主程序集的同一文件夹中。

但是,如果我想将所有引用的程序集放在主程序集附近的子文件夹中怎么办?

像这样的东西:

PS:这是针对 .NET Compact Framework 3.5 构建的智能设备应用程序

0 投票
2 回答
996 浏览

c# - 在另一个程序集中读取 .config 文件

是否有可能在 dll 程序集中读取 .config 文件?目前,我在 Assembly.Location 属性上使用 OpenExeConfiguration,这似乎有效。但我想为不同的用途创建单独的 .config 文件,如 ConfigModuleA.config、ConfigModuleB.config 等。

任何的想法?

0 投票
6 回答
43196 浏览

.net - mscorlib.dll 和 System.dll

为什么 MS 最初决定维护这两个独立的核心库?也许他们考虑到了一些可伸缩性问题,但现在我从未见过任何类型的应用程序不需要两者。有人有这方面的内幕消息吗?这并不重要,但多年来一直在我脑海中。

PS。我知道这两个库中有什么,我知道区别 - 我是Reflector的忠实粉丝:) 只是想知道两者的分离有什么实际用途。

0 投票
1 回答
2161 浏览

asp.net - 如何使用版本号显示所有 ASP.NET Web 应用程序加载/引用的程序集?

为了调试和维护目的,我想在 ASP.NET Web 应用程序内的专用网页上显示所有使用的程序集的列表(在许多不同的服务器上有许多此 Web 应用程序的实例)。可以从bin 文件夹GAC调用程序集。有一些自己写的,也有第三方程序集。

是否有一种简单、自动化的方法来获取Web 应用程序的所有已加载或引用的程序集的列表,包括版本号(调用System.Reflection.Assembly- GetName().Version...)?我是否必须明确传递所有程序集名称以进行版本检查,还是可以自动检索它们?我是否必须使用反射来获得完整的依赖项/引用列表?

0 投票
1 回答
810 浏览

reflection - 仅加载一次程序集

我在运行时加载程序集,每次调用代码时出现的问题是我是否应该检查该特定程序集是否已经加载?还是.Net 会处理这个问题并且一个程序集(相同版本)只能加载一次?这里的基本问题是我是否必须遍历已加载程序集的列表并查看我的程序集是否已加载?谢谢