您是否有Visual Studio 2008和C#的引用问题?

时间:2010-03-29 16:57:44

标签: c# visual-studio-2008 reference

我正在开发一个项目,似乎每次有人从源代码控制中检出项目以在本地框上构建它们时都会出现问题,因为引用不再被解析。

我无法弄清楚这是配置问题还是Visual Studio 2008问题。还有其他人有这个问题吗?如果是这样,你有什么办法可以解决这个问题吗?

注意:它可能与被引用的DLL的显式路径或它们的引用方式有关......我不太确定。

6 个答案:

答案 0 :(得分:2)

通常我会用三件事中的一件看到这个

  1. 机器A上的软件包,而不是机器B上的软件包
  2. 机器A上的GAC(全局程序集缓存)中的内容,而不是机器B中的内容
  3. 未检入源代码管理的包
  4. Visual Studio通常可以很好地处理关系路径,而我还没有只是成为路径问题。

    还要确保您没有签入.SUO文件和.csproj.user。这些都有时会带参考。

答案 1 :(得分:1)

开始查看.csproj文件。我们在几年前遇到过这个问题,但很快就知道它比其他任何东西都更容易出现操作错误。要查找的具体项目是:<HintPath><ProjectReference>

答案 2 :(得分:1)

是的,您的问题肯定是由引用的DLL的路径引起的。在项目的References文件夹中查看DLL的属性(右键单击Visual Studio解决方案中的引用项并选择Propertiers)以查看用于DLL的路径。要解决此问题,一个选项是确保每个人在其本地驱动器上具有与引用的DLL相同的路径。您还可以使用项目属性的“参考路径”页面向项目添加其他参考路径。

答案 3 :(得分:0)

请检查是否有人意外提交/签入任何csproj.user文件及其<ReferencePath> under <propertygroup>内的本地路径

答案 4 :(得分:0)

听起来引用的DLL没有被检入源代码控制 - 我将所有外部dll放在项目根目录下的lib文件夹中并引用它们。我从未遇到过Visual Studio正确解析相对路径的问题。

答案 5 :(得分:0)

  1. 在同一解决方案中引用您自己的代码应为“项目引用”。永远不要直接添加这些作为DLL的引用。对于您自己/内部的代码,请尽可能多地添加解决方案。否则采取策略2C。
  2. 应讨论对其他代码的引用,并为每种类型的引用选择策略。您有几个选择:
  3. 一个。直接添加DLL作为解决方案的一部分,可能在LIB目录中。将其检入源代码管理中。每个团队成员都将拥有一致的体验。

    湾对于第三方组件,每个人都应该运行具有一致安装路径等的供应商安装包。(许多第三方安装到GAC,因此这将成为参考的一部分。否则它将是c:\ Program files \ etc等)

    ℃。将DLL发布到共享目录,即网络共享。仅从此路径引用DLL。确保Copy-Local为true。

    通过查看CSPROJ文件XML以查找标签(例如ProjectReference和HintPath)来验证策略。

    最后,每个团队成员都应该意识到这一点。如果有人做了不同的事情,那么每次新的“获取最新”都会一次又一次地感受到痛苦。