2017-10-05 133 views
0

我在我的解决方案资源管理器中有几个项目,我想按照下图所示顺序构建。 enter image description here如何在同一个解决方案中执行另一个项目?

这里的buildserver项目正试图建立一个.dll。我希望这个项目能够从testExecutive项目中执行。我如何去做这件事?

我尝试添加构建依赖项,并在我的testExecutive.cs文件中添加了{使用Buildserver}。但是当我点击运行时,只有testexecutive项目运行,而不是buildserver。

我可以编程命令另一个项目来构建?

+2

您似乎在交替使用“执行”和“构建”。你想以编程方式**构建**一个项目,或者只是让Visual Studio构建一切并在运行时将一个项目调用到另一个项目中? – Blorgbeard

+0

@BarmakShemirani但是Build服务器项目会生成一个.dll文件作为输出,并且visual studio会说生成.exe的其他项目必须是启动项目。 – Sameer

+1

你不能只是“执行”一个dll。没有一个dll的标准入口点。也许这个项目应该是一个可执行文件而不是一个dll。要么是显式调用testExecutive项目所需的函数。 – Blorgbeard

回答

2

构建依赖关系只能确保您在依赖项部分(BuildServer)中指定的项目在构建整个解决方案时在依赖项目(testExecutive)之前构建。

如果您想在构建特定项目之前运行某个操作,那么在项目属性中有一个“构建事件”部分,您可以在构建之前执行任何命令,如果您在“预构建事件命令行“。 要实现你所描述的,你可以在这里输入:

MSBuild ..\BuildServer\BuildServer.csproj /verbosity:minimal /target:Rebuild 

但我不会建议,因为这将建立两次当你重建的整体解决方案。

也许你可以定义它像只调试模式下工作:

if $(ConfigurationName) == Debug MSBuild ..\BuildServer\BuildServer.csproj /verbosity:minimal /target:Rebuild 

确保该路径的csproj是正确的,msbuild.exe是在您的环境变量路径。

但是,这一切对我来说似乎都没有必要。您可以右键单击BuildServer项目并在任何时候更新任何代码后选择构建。或者用F6构建整个解决方案。项目依赖性将确保BuildServer在testExecutive项目之前构建。

相关问题