【问题标题】:assembly reference problem--'assembly not referenced' versus type in two assemblies程序集引用问题——“未引用程序集”与两个程序集中的类型
【发布时间】:2010-08-09 20:08:32
【问题描述】:

我的程序集引用有问题。我有四个程序集:

  1. 一个名为 EncryptionUtils 的类库
  2. 另一个名为 PasswordUtils 的类库使用 EncryptionUtils
  3. 另一个名为 Toolkit 的类库是许多库的 ILMerge,包括 EncryptionUtils
  4. 使用 Toolkit 和 PasswordUtils 的 WPF 应用程序

在我的 WPF 应用程序中,如果我不包含对 EncryptionUtils 的引用,我会收到以下错误:

“EncryptionUtils.RSAPublicKey”类型在未引用的程序集中定义。您必须添加对程序集“EncryptionUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的引用。

但是,一旦我添加了对构建 PasswordUtils 和 Toolkit 的相同 EncryptionUtils 的引用,我就会收到以下错误:

“c:...\EncryptionUtils.dll”和“c:...\Toolkit.dll”中都存在“EncryptionUtils.MyClass”类型

我如何摆脱这个第 22 条陷阱?我是否必须将构成 Toolkit 的所有单个库添加到我的 WPF 应用程序中?

【问题讨论】:

    标签: c# .net assemblies ilmerge


    【解决方案1】:

    要么将库单独添加到 WPF 应用程序(这是我倾向于推荐的)要么PasswordUtils 合并到 Toolkit,并删除对 PasswordUtils 的引用。

    可以潜在地使用外部别名来指定您所指的类型 - 但是在两个程序集中提供相同的类型有点导致灾难,IMO。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多