问题标签 [signed-assembly]
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.
c# - 为什么签名程序集加载缓慢?
这周我遇到了一个我无法解释的奇怪问题:我将我的应用程序切换为使用一些第三方程序集(Xceed Grid 和它们的一些其他组件)的签名版本,并且应用程序启动时间进入了厕所。每次应用程序加载签名程序集时,加载需要 30 秒。应用程序启动时间从 5 秒增加到 90 秒以上。这到底是怎么回事?!
其他一些信息:
- 这是一个在 .NET 3.5 SP1 下运行的 WinForms 应用程序。
- 计算机没有互联网连接(出于安全考虑)。
.net - 引用 COM DLL 的签名程序集依赖项必须引用依赖项生成的互操作程序集
对不起这个可怕的标题。
我有一个签名的程序集“Signed.dll”,它是另一个程序集的依赖项,比如 Executable.exe。
Signed.dll 引用一个 COM DLL 并公开公开此 COM DLL 的一种类型:“ComPublicT”。
Executable.exe 必须引用签名项目中自动生成的 Interop.COM.dll,而不是添加对原始 COM DLL 的引用。
该错误是来自两个不同 COM 互操作程序集的两个不同 ComPublicT 类型之间的类型不匹配。
仅当 Signed.dll 已签名时才需要。
除了创建一个模仿 ComPublicT 的类型之外,我如何允许 Executable 引用 COM DLL 而不是 Signed 的 COM 互操作程序集?
为什么会这样?
编辑,这是一个有些不同的细分:
签名项目引用 COM.dll,并公开从 COM.dll 公开一个类型 在 Visual Studio 中添加此引用会自动创建 Interop.COM.dll
可执行文件引用并依赖于签名项目 通常您可以添加对 COM.dll 的引用,一切都很好。
因为 Signed 已签名,所以来自 Signed 的公开公开的 Interop.COM.dll 类型不会被编译器视为与来自 Executable 的 Interop.COM.dll 的公开公开的类型相同
Executable必须手动引用Signed的Interop.COM.dll,感觉很脆弱。
c# - c# - 你可以对强命名程序集进行“弱”程序集引用吗
由于各种原因,我宁愿不在我的项目中使用强命名(签名)程序集。但是,其中一个项目被 Sharepoint Web 部件引用,这意味着它必须经过签名。
是否可以签署这个程序集,但是当我从其他项目中引用它时,使用非强引用来这样做。这将为我的其余代码提供未签名程序集的优势,但仍允许它由共享点加载。
c# - 有没有办法让 assemblyBinding->bindingRedirect 允许多个目标版本?
我在签名的 .NET 程序集地狱中。
我有一个针对签名程序集 A 版本 1.1 ( SA 1.1.1 ) 编译的应用程序。在某些系统上,我已经拥有SA 1.1.2
是否可以在重定向中表达这一点?
SA 1.1.1 binds to
SA 1.1.1 OR
SA 1.1.2
只是为了提醒你这样的事情是怎样的:
asp.net - 网站项目是否可以在 Visual Studio 中引用已签名的程序集?
我知道 Visual Studio 2008 中有以下两种不同类型的 Web 项目:
- 网站项目
- 网络应用项目
只要 Web 应用程序的程序集也使用相同的密钥签名,Web 应用程序项目就可以引用已签名的程序集。但是,这不适用于网站项目,因为没有地方可以签署程序集。我认为这是因为程序集是在服务器上动态编译的?
无论如何,是否有可能让网站项目与这个签名的程序集一起工作?还是我必须将此网站项目转换为 Web 应用程序项目?
编辑:
以下情况需要我就此事要求澄清:
我有一个类库,在我的 Visual Studio 解决方案中被其他几个项目引用。其中一个项目是将部署到特定外部用户的 Windows 应用程序。为了确保应用程序使用正确的程序集并防止其他人使用该程序集(我知道关于其有效性的限制),所有程序集都已签名并声明了库中的所有类作为朋友(内部)。
该网站项目似乎没有办法让我签署它的程序集,并且在尝试使用库中的任何内容时收到以下消息:“CLASS 在这种情况下不可评估,因为它是'朋友'”,即可以预料。
以下属性位于我的类库项目的 AssemblyInfo.vb 文件中:
我的结论:
看起来最干净的方法是将网站转换为 Web 应用程序,但这需要一些时间,因为我们的网站已经非常充实,正如其他讨论中所指出的那样,可能会很痛苦做。展望未来,我认为首先创建一个 Web 应用程序可能是一个更好的想法,并且对于未来的开发更加灵活。
c# - InternalsVisibleTo,签名和单元测试,如何使其实用?
在“C# in Depth 2nd Edition”中,Jon Skeet 的书——我刚读到第 2 部分结束——在 7.7.3 中提到它InternalsVisibleTo
也可以与签名程序集一起使用。目前我根本没有使用签名。已发布二进制文件的安全问题实际上非常关键,因此我计划使用预处理器变量测试完全删除发布程序集的属性。
只是为了兴趣,使用签名的程序集和InternalsVisibleTo
? 为了InternalsVisibleTo
用于指定签名的朋友程序集,我需要指定它的公钥。我只有在编译了依赖于被测程序集的朋友程序集之后才拥有它(动态程序集加载和反射抛开,什么会膨胀编码和可读性)。这听起来像是一个鸡蛋问题,需要测试程序集的引导程序。我可以想象一些使用 MSBuild 和脚本来自动执行此操作的技巧。有没有更实用的方法来做到这一点?
如果它仍然如此乏味,我将坚持我的第一个想法,即为发布版本放弃单元测试(这有点令人不满意,因为可能会未经测试微妙的时间问题......)
c# - Box.V2 SDK 部署问题:无法加载文件或程序集“Nito.AsyncEx ...”或其依赖项之一。需要强命名程序集。
我们在 VS 2010 Win7 x64 下有针对 .Net 4.0 的 WCF 项目,请注意它是一个签名程序集。Box.V2 SDK 已经通过 NuGet 安装,我们使用的版本是 1.0.5。
一旦我们尝试构建解决方案,坏事就开始发生,第一个问题是 Box.V2 dll 本身,由于以下错误,我们无法继续前进:
“程序集生成失败 - 引用的程序集 'Box.V2' 没有强名称”。
我们已经通过使用“Brutal Developer .NET Assembly Strong-Name Signer (1.3.0.0)”对程序集进行签名来克服这一问题。
成功构建后,我们遇到了第二个问题,而创建 BoxClient 会抛出异常并显示以下消息:
“无法加载文件或程序集 'Nito.AsyncEx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。需要强命名程序集。(来自 HRESULT 的异常:0x80131044)”。
我们使用以下代码来实例化客户端:
其中clientId、clinetSecret 和redirectUri 是我们方法的参数。
为解决问题而采取的步骤:
- Nito.AsyncEx.dll 使用相同的上述工具进行签名 - 相同的例外。
- Nito.AsyncEx 程序集已升级到最新版本 (2.1.3.0),实际上他们已经对其进行了调整并为其程序集使用了强名称 - 仍然没有运气。
- 此处提交的问题之一(https://github.com/box/box-windows-sdk-v2/issues/3)有类似的问题,我们尝试按照建议的方案进行操作,但没有太大帮助。
- 我们试图根本不签署我们的程序集,但再次徒劳无功,因为抛出了同样的异常。
- 我们还尝试按照此处的描述对 Box.V2.dll 进行调整和签名,但之后甚至无法构建它,因为引发了以下错误:
无法解析由类型“Box.V2.BoxClient”引用的程序集“System.Runtime,Version=2.6.3.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的基类或接口“System.Object”
无法解析“Box.V2.Config.BoxConfig”类型引用的程序集“System.Runtime,Version=2.6.3.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的基类或接口“System.Object”
所以我们目前被困在我们的产品中部署 Box API,这是相当令人沮丧的。
任何帮助是极大的赞赏。
linqpad - LinqPad 访问已签名程序集的内部
是否有我可以使用的签名版本的 LinqPad 来访问签名程序集的内部?
c# - 即时创建我的程序集的签名副本
我需要即时制作我的程序集的签名副本。
我试图通过在构建后事件中添加这个脚本来做到这一点:
但是,当我引用签名的程序集时,我得到一个运行时异常“无法加载文件或程序集'MyAssembly, Version=1.2.5511.31417, Culture=neutral, PublicKeyToken=b025765091e877ec' 或其依赖项之一。系统找不到文件指定的。”
我尝试使用反射器从 MyAssemblySignedVersion.dll 创建一个项目,但它无法编译,因为缺少某些命名空间,可能是由于重新组装了反汇编的 dll。这可能有关系吗?
我怎样才能使这项工作?提前非常感谢。
.net - 用于签署应用程序的证书的哪些信息存储在应用程序中?
我需要知道用于签署 .Net 应用程序的证书中包含的信息是否存储在二进制文件中的某个位置。
我们需要这些信息来决定是否应该从 Verisign 或类似的机构购买受信任的证书,或者如果我们使用使用 Visual Studio 创建的证书是否相同。