1
  1. 我创建了一个测试项目,其输出将是强命名程序集。我已在“项目 -> 属性 -> 签名”部分指定了 SNK 文件名,以便程序集具有强名称。我添加了未签名或强命名的程序集的引用。我期待我的项目根本不会构建,因为它引用了未签名的程序集。但是,它构建了,我也可以在 GAC 中安装程序集!为什么会这样?(我使用的是 .NEt 4.0,它是 gacutil.exe) 注意:我确保被引用的程序集不是强命名的。

  2. 我可以在我的程序中以编程方式加载“无符号”(即非强命名)程序集,其输出将是强命名程序集吗?如果是,为什么允许这样做,而另一方面,.NET 不允许添加对未签名程序集的引用?

  3. 如果我在 GAC 中有同一个程序集的多个版本。在我的配置文件中,如果我只指定程序集的名称,将从 GAC 加载哪个版本?每次都是最新版本吗?哪个 API 有用?我在Assembly课堂上发现了许多标记为“已弃用”的方法。

4

2 回答 2

1

您可以从已签名的程序集中引用 VS.Net 中的未签名程序集。但是,如果您调用从已签名到未签名的任何内容,则构建将失败。

于 2011-06-27T07:53:33.527 回答
0
  1. 引用未签名程序集的签名程序集没有问题。它可以完成并且签名的程序集可以被GACed。

  2. 是的,您可以加载。

  3. 如何仅通过名称指定程序集?只有一个 API LoadWithPartialName 并且由于多种原因已被弃用。您需要版本、文化和公钥令牌来唯一标识程序集。

于 2010-12-03T05:03:14.523 回答