4

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

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

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

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

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

4

2 回答 2

5

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

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

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

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

于 2009-07-08T23:56:34.363 回答
0

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

于 2009-07-08T22:25:00.057 回答