程序集引用问题 - 'assembly not referenced'与两个程序集中的类型

时间:2010-08-09 20:08:33

标签: c# .net assemblies ilmerge

我遇到了程序集引用的问题。我有四个组件:

  1. 名为EncryptionUtils的类库
  2. 另一个名为PasswordUtils的类库,它使用EncryptionUtils
  3. 另一个名为Toolkit的类库,它是许多库的ILMerge,包括EncryptionUtils
  4. 使用Toolkit和PasswordUtils的WPF应用程序
  5. 在我的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应用程序中?

1 个答案:

答案 0 :(得分:1)

将这些库单独添加到WPF应用程序(这是我倾向于建议的)PasswordUtils合并到Toolkit中,并删除对{的引用{1}}。

可能可能可能使用extern别名来指定你的意思 - 但是在两个程序集中提供相同的类型是一种灾难,IMO。