【问题标题】:Need help creating a file reference in a Visual Studio 2008 project需要帮助在 Visual Studio 2008 项目中创建文件引用
【发布时间】:2010-02-09 16:27:17
【问题描述】:

如果我没记错的话,在过去的 Visual Studio 版本(6、2003、2005)中,如果将现有文件添加到项目/解决方案中,该文件将保留在原处,而不是复制到当前解决方案中.无论如何,这就是我在 VS2008 中所需要的。

例如,我有两个项目,出于第 3 方 DLL 的原因,需要链接到不同的 DLL,但我想保持包装器和我的更高级别的 API 相同。

假设我从 ProjectA 开始,它有文件 wrapper.cs 和 api.cs。 wrapper.cs 链接到 c1.dll 和 c2.dll。现在由于我无法控制的原因,我现在需要一个使用 wrapper.cs 和 api.cs,但链接到 c3.dll 和 c4.dll 的 ProjectB。

理想情况下,我只需在 VS2008 中创建 ProjectB,然后使用“添加现有项目”到 ProjectA 文件夹中的 reference wrapper.cs 和 api.cs。但是当我这样做时,它会执行文件复制,现在我需要跟踪源文件之间的更改并根据需要进行合并。

我真正可以在执行时使用建议的可能解决方案: 1.也许我可以使用一个 SVN 技巧来完成这项工作?我想不出一个,但如果我可以将 ProjectB 项目中的文件链接到 ProjectA 文件,我会很高兴。 2.在VS2008中找到正确的选项,就像“添加文件引用”一样。我浏览了项目的上下文相关菜单,但没有找到任何可行的方法。

【问题讨论】:

    标签: visual-studio-2008 svn


    【解决方案1】:

    您是否尝试过添加为链接选项?当您打开“添加现有项目菜单...”时,找到您的文件,选择它并选择“添加”按钮旁边的箭头,然后选择“添加为链接”。

    【讨论】:

    • 谈论糟糕的用户界面 (IMO)。为什么他们会把这三个选项放在一个下拉列表中? “添加”应该是默认值。 “显示以前的版本”甚至不属于该列表。 “添加为链接”应该是一个复选框,所以很清楚。当“添加”是列表中的第一个时,很容易错过。女士,放下下拉列表,然后有一个复选框!!!好吧,吐槽一下。 :) 感谢您向我指出这一点!我认为这正是我一直在寻找的,但在过去的两年中从未注意到过。
    • 仅供参考——完美运行。我刚刚做了一个测试,它顺利进行。 :) 再次感谢。
    【解决方案2】:

    您可以编辑 .csproj 文件以引用原始文件,但我认为它还是这样做了 - 在记事本中查看它,您会看到很多......相对目录路径。

    您可以使用一个 SVN 技巧,您可以使用外部文件来签出原始文件,并且可以将这些文件放到您喜欢的任何目录中,但它不能签出到包含现有文件的目录 - 它会清除内容第一个 IIRC。

    【讨论】:

    • VS2008 确实做了一个文件副本。只需立即尝试“添加现有”,您就会看到您的项目现在将拥有您指定的文件的副本。感谢您的 SVN 提示——我将不得不研究“外部”。我认为这将是一个问题的原因是因为您所说的-您无法在非空目录中签出。
    【解决方案3】:

    我没有直接回答您的问题,但在这种情况下,听起来正确的解决方案是隔离 wrapper.cs 和 api.cs 的功能,提供动态加载它们的依赖项的功能,并将它们打包为每个项目都可以使用的单独的类库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多