【问题标题】:Setting up a build dependency without using a reference?在不使用引用的情况下设置构建依赖项?
【发布时间】:2009-07-08 21:37:29
【问题描述】:

全部: 我正在研究一个解决方案,其中一个项目实际上是该解决方案构建的主 exe 的插件。由于这个项目是一个插件,因此从主 exe 引用插件是错误的(该程序集不保证存在于部署中,它是可选的)。

所以这是我的问题: 如果我修改插件项目中的代码,然后按 F-5 运行,Visual Studio 将不会始终构建我的插件(因为基于引用树,主 exe 似乎不依赖它)。

是否有我可以更改的解决方案或项目级别设置,以在我运行时包含此插件项目(不添加引用)?

我知道工具中的全局设置|选项 |构建并运行,但我宁愿不必为了让这个解决方案正确构建而在全局范围内更改 VS 的行为(另外,如果设置与解决方案或项目一起使用,那么当其他开发人员检查它时,他们应该简单地继承设置)

顺便说一句:这些是 VS 2005 解决方案中的 c# 项目。

【问题讨论】:

    标签: visual-studio visual-studio-2005 visual-studio-project


    【解决方案1】:

    在解决方案资源管理器中右键单击根节点 -> 属性 -> 项目依赖项。 (VS 2008 用户:此功能有自己的对话框,可从上下文菜单直接访问。)

    依赖关系图表示为复选框的邻接列表。您选择的每个项目都将检查并禁用其直接引用[假设您使用项目引用,而不是程序集引用]。如果其他复选框会创建循环依赖项,则它们可能会被禁用。

    对于任何未禁用的复选框,选中/取消选中会将 ProjectSection(ProjectDepedencies) 部分写入您的解决方案文件。因此,您的设置将通过源代码控制传播给其他开发人员。

    但公平警告:如果您使用 MSBuild(包括任何版本的 Team Build),它处理 *.sln 文件自定义的方式并不总是与在 Visual Studio 中构建的方式相同。 *.sln 不是本机 MSBuild 文件类型,与 *.??proj 文件不同。我自己也遇到了问题described here;我也偶尔看到相反的行为。

    【讨论】:

    • 明白了!我知道我以前看过那个对话,但我找不到它(最后,我有一半以为我在做梦)。谢谢。
    【解决方案2】:

    我能否建议创建一个虚拟(空)项目来表示主 exe 和插件的组合,并将该项目配置为依赖于两者,但在启动时运行 EXE?

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 2020-01-05
      相关资源
      最近更新 更多