“Copy Local = false”引用的项目显示“无法加载文件或程序集”

时间:2013-07-24 14:53:46

标签: c# reference path project .net-assembly

我花了好几天寻找答案,但还没弄清楚会发生什么。

我有一个包含4个项目的解决方案。其中一个引用其他3.所有引用都设置为“copy local = false”。

我为每个人制作了输出文件夹,一切都很顺利,直到我决定更改输出文件夹。 : - (

现在当我将项目引用到具有属性“copy local = false”的另一个项目时,项目无法加载并且我有一个错误说

  

无法加载文件或程序集“...”或其依赖项之一。系统找不到指定的文件。

我很确定FusionLog的错误是Studio仍然在旧路径上寻找项目的.dll。

当我设置“copy local = true”项目时,但是这个解决方案是不可接受的。

我该怎么做才能将copy local设置为false再次加载我的项目?如何更改Visual Studio正在查看的路径?是否有可以清除或更新的缓存?

提前感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

将此添加到您的依赖项目的app.config(I.E.具有其他项目依赖项的项目):

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="*relative path to assemblies here*" />
    </assemblyBinding>
</runtime>

将'此处的相对路径'替换为构建程序集的实际相对路径(新的输出文件夹)。

MSDN

答案 1 :(得分:0)

  1. 获取整个解决方案的备份副本(所有文件)
  2. 找到您的解决方案(.sln)文件。
  3. 右键单击其图标并选择“打开方式”,然后选择NotePad或类似的文本编辑器。
  4. 搜索部分或全部旧路径。
  5. 如果您在文件中找到它,请用新路径替换旧路径的所有实例。
  6. 保存文件。