应用程序仍然引用先前版本的程序集

时间:2012-03-22 19:52:35

标签: c# visual-studio-2010 gac

我在使用GAC /我的应用程序时遇到了一些麻烦。我以前使用版本9.0.2.3951进行iAnywhere.Data.AsaClient程序集引用,但现在我已经通过进入C:\ Windows \ Assembly来卸载它。目前GAC中有版本9.0.2.3924,但是当我运行应用程序时,它仍然在寻找版本9.0.2.3951而不是3924.

我尝试进入我的项目中的Assembly.cs文件,看它是否有3951的任何条目,但它甚至没有提到,然后我试着进入App.Config文件,看它是否有任何条目,但它没有。我还删除了项目中的引用,并重新添加了对3924文件版本的引用。

如何让我的应用程序查找3924而不是3951文件版本。

App still referencing newer version although there is no references

4 个答案:

答案 0 :(得分:3)

您需要在配置中添加assemblyBinding信息,以强制进行正确的绑定。像这样:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="" />
        <dependentAssembly>
            <assemblyIdentity name="iAnywhere.Data.AsaClient" publicKeyToken="f222fc4333e0d400" culture="neutral" />
            <bindingRedirect oldVersion="9.0.2.3951-9.0.2.3951" newVersion="9.0.2.3924" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

第二个选项:卸载相关项目,然后选择编辑(通过上下文菜单)。查找项目引用,它应如下所示:

<Reference Include="iAnywhere.Data.AsaClient, Version=9.0.2.3951, Culture=neutral, PublicKeyToken=f222fc4333e0d400">

您可以删除它并手动重新生成它,或者只需将XML条目修改为:

<Reference Include="iAnywhere.Data.AsaClient, Version=9.0.2.3924, Culture=neutral, PublicKeyToken=f222fc4333e0d400">

干杯!

答案 1 :(得分:2)

code4life提供了一个很好的解决方案,在大多数情况下都可以使用。但在我的情况下,一个不同的解决方案对我有用。只是为了帮助其他人我在这里添加屏幕截图的解决方案。

  1. 在VS2010中,点击工具,然后点击选项,然后点击项目和解决方案链接,然后点击构建然后运行,然后在 MSBuild项目构建输出详细程度下选择诊断

  2. MSBuild项目构建日志文件详细程度下,选择诊断,然后按确定

  3. Options Screen

    “3”。按 F5 重新运行项目。这次查看 OUTPUT 窗口以查找调用程序集部分。在我的情况下,它告诉我以下。

    enter image description here 上图中突出显示的文字显示,GAC中仍然存在一个政策文件,该文件正在将 3924版来自我的应用程序的电话重定向到 3951 。看完之后我进入 C:\ Windows \ Assembly **并开始查找导致重定向到** uninstall 的策略文件。截图如下, enter image description here

    “4”。我只是右键单击该文件并卸载我不想要的版本并再次运行我的程序并修复它。

答案 2 :(得分:0)

搜索你所有的iAnywhere.Data.AsaClient dll并找出dll是哪里的保持

  open cmd.exe

  cd\

  dir iAnywhere.Data.AsaClient.dll /s

检查您要查找的版本的所有dll,并从应用程序中删除其余的找到这些dll的

如果您发现gac中的错误版本的dll,请从gac中卸载它,如果您需要帮助知道该怎么做,请告诉我,我可以告诉您

答案 3 :(得分:0)

问题是您的应用程序是针对它无法再找到的程序集版本编译的。您的选择是:

  1. 更新程序集引用并重新编译代码
  2. 在@ code4life的回复中提及
  3. 创建绑定重定向