如何使Visual Studio库项目在构建时不会将其“推出”到Web项目中?

时间:2011-10-24 15:02:00

标签: visual-studio-2010

这是一个难以理解的标题,所以请原谅我,如果它没有完全捕捉到这个想法。

也许我很疯狂,但我只是注意到了这种行为:

  1. 创建Visual Studio解决方案
  2. 创建DLL库项目(我使用C#...不知道该行为是否与另一个特定于语言的DLL项目相同)。
  3. 创建Web客户端A(我使用MVC 3项目)
  4. 从新的网络客户端A
  5. 引用该库
  6. 创建Web客户端B(我使用的是ASP.NET项目)
  7. 从新的Web客户端B
  8. 引用该库
  9. 构建解决方案
  10. 等一下(至少一分钟,以便时间戳差异明显)
  11. 打开两个Windows资源管理器窗口:一个到Web客户端A中的bin,另一个到Web客户端B中的bin。您应该看到客户端项目的二进制文件以及库项目(假设“复制本地”为项目引用是一种通用默认值)
  12. 构建只是库项目
  13. 在我的系统上,库DLL似乎被推送(或相互)到客户端bin文件夹中。如果你在第8步等待,这应该通过时间戳差异显而易见。再次,也许我很疯狂,但我知道我以前做过这种情况,从未见过这种行为。

    问题出现了,因为我正在使用这种类型的安排解决方案,并且正在构建两个Web应用程序而不是构建整个解决方案。当我构建Web应用程序A时,它工作正常,但Web应用程序B会抱怨“FileNotFoundException:无法加载文件或程序集”错误。反之亦然。

    所以问题是:

    这是正常的行为吗(我之前在这种情况下我是疯了还是错了?)

    如果不正常,是否有一个设置可以让库DLL在客户端构建时只进入客户端?

1 个答案:

答案 0 :(得分:1)

检查对类库的引用的复制本地设置。

修改

刚刚检查过,我的机器上也是如此。 我认为这是默认行为。如果您考虑一下,它允许您重建类库并在引用项目中使用它而不构建该项目。