c#-4.0 - Nuget Moq 4.0.10827 和 InternalsVisibleTo(再次)

标签 c#-4.0 moq nuget

我一直在尝试让 Moq(或者更确切地说 CaSTLe.Core)为我的内部类型创建代理。

以下(当添加到我的测试项目时),允许事情工作:

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]

但是这个(更安全的版本)不会:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=002400000480000094000000060200000024000052534131000400000100010077f5e87030dadccce6902c6adab7a987bd69cb5819991531f560785eacfc89b6fcddf6bb2a00743a7194e454c0273447fc6eec36474ba8e5a3823147d214298e4f9a631b1afee1a51ffeae4672d498f14b000e3d321453cdd8ac064de7e1cf4d222b7e81f54d4fd46725370d702a05b48738cc29d09228f1aa722ae1a9ca02fb")]

注意:这里的公钥不同于documented here ,我重新检查了当前 Nuget 版本的 Moq 附带的 CaSTLe.Core.dll 的公钥。

我仍然有错误的 key 吗?

[编辑]

我注意到从官方网站(而不是 Nuget)下载的完整 Moq 包含一个带有较小 dll 的 NET40-RequiresCaSTLe 文件夹,这意味着我猜 CaSTLe.Core 代码已包含在默认的 Moq.dll 中。

我正在查看他们为 Silverlight 提供的 CaSTLe.Core.dll 并假设他们一直使用相同的版本?

最佳答案

我知道这是旧的,但对于任何偶然发现的人来说,我曾经在 Pex 和 Moq 上遇到过版本控制问题,最后找到了最直接和最有用的方法 Strong Name Tool .也就是说,我发现打开了一个 Visual Studio 命令提示符并使用“sn -Tp ThirdPartyAssembly.dll”直接查询它的 key 。事实证明,这比在互联网上寻找不同的、记录在案的公钥来尝试要有效得多。

关于c#-4.0 - Nuget Moq 4.0.10827 和 InternalsVisibleTo(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188603/

相关文章:

c# - 捕获 DLL 崩溃

.net-4.0 - C#4.0 : Method parameter default values as array

c# - 使用起订量,System.InvalidCastException : Unable to cast object of type 'CaSTLe.Proxies.ObjectProxy' to type

asp.net-mvc - 使用 Moq 模拟 FormsIdentity.Ticket.UserData

unit-testing - 使用 Rhino mock 模拟数据库对象

c#-4.0 - 求助,怎么运行不安全

c# - 如何在 ASP.NET MVC 单元测试中从 Moq 中的模拟返回中检索参数值

visual-studio - Nuget:将解决方案中的一个项目设置为不受 Nuget 管理?

visual-studio-2010 - 网站的 NuGet 包还原

visual-studio-2013 - 在 Visual Studio 2013 中安装 WIX 工具集后找不到 Windows Installer XML 节点