2

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

我有一个包含 4 个项目的解决方案。其中一个引用了其他 3。所有引用都设置为“复制本地 = false”。

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

现在,当我将项目引用到另一个具有属性“copy local = false”的项目时,项目不会加载,我有一个错误提示

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

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

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

我应该怎么做才能在将本地复制设置为 false 的情况下再次加载我的项目?如何更改 Visual Studio 正在查找的路径?是否有可以清除或更新的缓存?

提前感谢您对此的任何帮助。

4

2 回答 2

0

将此添加到您的依赖项目的 app.config(即依赖于其他项目的项目):

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

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

MSDN

于 2013-07-24T14:58:39.790 回答
0
  1. 备份整个解决方案(所有文件)
  2. 找到您的解决方案 (.sln) 文件。
  3. 右键单击其图标并选择“打开方式”,然后选择记事本或类似的文本编辑器。
  4. 搜索部分或全部旧路径。
  5. 如果在文件中找到它,请将旧路径的所有实例替换为新路径。
  6. 保存文件。
于 2013-07-24T15:04:42.873 回答