c# - 在所有其他项目完成构建之前启动多个启动项目之一

标签 c# visual-studio visual-studio-2012

我有两个解决方案,包含 project1 的 solution1 生成一个源文件,该文件被编译到 solution2(具有 project2)中。您只需构建并运行解决方案 1,然后构建并运行解决方案 2。

我的一些团队成员提示这个的可用性,所以,我将两个项目放在一个解决方案中,并将它们都设置为运行(多个启动项目)。我在 project2 中放置了一个预构建步骤以等待 project1 完成运行,因此 project2 将使用 project1 运行时生成的最新代码构建。

问题是,它不起作用! visual studio构建了project1,project 2正在等待它运行完成(因为那时project2需要的代码是由project1生成的)。但是 Visual Studio 显然不会运行任何项目,直到它们全部完成构建,所以这个“等待 project1”会阻止 project2 构建(按设计),但也会阻止 project1 运行(尽管它不必这样做)。

有什么方法可以解决这个问题并执行我想要的功能,或者代码解决方案/解决方法?

最佳答案

Visual Studio 会根据您的依赖关系计算构建顺序。如果项目 A 依赖于项目 B,Visual Studio 将在 A 之前构建 B。

In order to change build order just right click the Solution node and select 
"Project Build Order"

由 O.P. 编辑:

这修复了构建顺序,但没有完全解决我的问题。它确实直接引导我找到解决方案,所以我正在编辑答案以使其完整(而不是评论)。

为了使其运行 Project1 以生成代码,我必须插入一个构建后步骤(编译,右下角的构建事件按钮),它只是程序集的名称 (project1.exe)。这运行了 project1,它编辑了属于 project2 的文件,这导致 make 逻辑看到 project2 中的文件比 project2.exe 更新,作为奖励开始了 project2 的重建。现在您只需对任一项目进行更改,使用 F5 运行它,然后 Boom,它就可以正常工作,没有人比我生成代码更聪明。

关于c# - 在所有其他项目完成构建之前启动多个启动项目之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541166/

相关文章:

c++ - 等待 Win32 应用程序中的特定键

c# - Microsoft.Net.Http.Server.WebListenerException(0x80004005): The prefix 'https://+:44384/' is already registered

c# - 禁止直接访问图像

.net - JetBrains dotCover 代码覆盖率分析失败,错误为 "Invalid stream header"

regex - 在Visual Studio的“查找”对话框中使用标准.NET正则表达式

visual-studio-2012 - 在Visual Studio中,我希望它在调试时先打开另一个表单,我该怎么做?

c# - .NET 4 缓存支持

C# WPF OnMouseEnter 和 OnMouseLeave 循环

c# - 自动格式化自动属性时忽略空格

visual-studio-2010 - 单个进程可以加载/使用 msvcr100.dll 和 msvcr110.dll 而不会引起问题吗?