我正在编写一个依赖于EntityFramework 5.0.0.0的Visual Studio扩展。我在项目中包含了EntityFramework。当我安装我的扩展程序时,我的扩展程序的DLL出现在VS扩展文件夹中,并且同时出现了EntityFramework.dll。
但是,当我在Visual Studio 2013(更新5)中运行扩展时,它无法加载EntityFramework:System.IO.FileNotFoundException: Could not load file or assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
查看Process Monitor,我看到当我运行扩展时,VS2013尝试从不同的路径加载EntityFramework,它有不同的版本 - 4.2。我希望VS2013能够继续搜索EntityFramework,并在我的扩展程序文件夹中找到它,就像我的扩展程序中包含的其他dll一样,但事实并非如此。
在VS2015中,VS确实设法加载EntityFramework 5.0.0.0,但它也从另一个不同的路径加载。
为什么VS2013不继续在我的扩展程序文件夹中搜索EntityFramework?
答案 0 :(得分:0)
您需要指定ProvideCodeBase
属性以指定应加载额外的程序集。 "有时"你很幸运,它找到了别的东西,但这种情况从未得到保证。您可以看到使用here的一些示例。