System.Windows.Interactivity.dll加载两次

时间:2017-07-10 03:24:13

标签: c# .net wpf dll

我在我的应用程序System.Windows.Interactivity.dll中使用。我在我的应用程序的Program Files文件夹中有特定版本(3.0.40218.0)。 这是负责加载它的代码: var x = 1; setInterval(function(){ document.write(x); x++; }, 500);。 当用户在GAC_MSIL中加载了此dll的另一个版本时,会出现问题。然后由于某种原因加载了这个dll的两个版本导致崩溃。有什么方法可以选择要加载的特定版本吗?

2 个答案:

答案 0 :(得分:1)

  

有什么办法可以选择加载特定版本吗?

不,XAML解析器将阻止您使用同一程序集的多个版本,并尝试将程序集的版本号添加到XAML中的命名空间声明中将不起作用。

该引用决定了XAML解析器实际加载的程序集。如果查看项目文件(.csproj),您应该能够看到引用的程序集的版本。

答案 1 :(得分:0)

好像我发现了这个问题。我认为它可能是.NET中的错误。在“参考”中我有旧版本的文件(适用于.NET 4.0)。如果它被缓存当然它被加载了,但由于某种原因,我的应用程序的Program Files文件夹中存在的新dll(对于.NET 4.5)也缓存在GAC_MSIL中并且也被加载。所以我的意思是它只是偶然使用了新版本。希望它可以帮助有类似问题的人。