将dll替换为更新的版本

时间:2013-01-23 15:46:07

标签: c# .net-assembly caliburn.micro assemblybinding fuslogvw

我有一个包含许多项目的Caliburn.Micro应用程序。有几个项目在单独的文件夹中引用相同的dll。现在我需要用更新版本替换该dll。我从所有项目中删除了引用并再次添加它。 但我收到运行时错误:

enter image description here

你能帮忙吗?

P.S。我试图使用fuslogvw.exe,但它显示为空: enter image description here

2 个答案:

答案 0 :(得分:2)

我认为您正在使用Visual Studio。 首先,如果特定版本设置为False(如果没有,请执行此操作),请检查所引用的所有FileHelpers的属性。尝试清理和重建。

如果问题仍然存在,请在解决方案的app.config中,在configuration部分中添加

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="FileHelper" publicKeyToken="3e0c08d59cc3d657" culture="neutral"/>
            <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

通过这种方式,您应该能够将使用过的版本强制为新版本。

答案 1 :(得分:0)

我的猜测是你需要添加对其他程序集的引用。

请附上csproj的文本以显示对您更新的dll的引用。

程序集可以引用不需要编译但在运行时需要的其他程序集。您需要确定FileHelpers是否是您明确引用的程序集。有关如何使用Fusion Log Viewer的信息,请参阅以下链接。它将为您提供有关查找装配的位置的信息。