2017-08-10 78 views
0

我在Windows 7 Ultimate x64上使用VS2010。 我想在一个解决方案中自动构建多项目。VisualStudio - Q:如何在解决方案中构建多个项目之前执行过程

例如:) 解决方案StormSolution包含4个项目。

1:Storm_Module1(输出文件扩展名:DLL)

2:Storm_Module2(输出文件扩展名:DLL)

3:CombineModule12(输出文件扩展名:DAT)

4: ConvertModule2CFGFile(输出文件扩展名:cfg)

第1,2步Storm_Module1Storm_Module2的结果是Standard Windows DLL

步骤3:的CombineModule12结果是开放Storm_Module1.dllStorm_Module2.dll使“combined.dat”文件,就像cmd.exe /c copy /b storm_module1.dll + storm_module2.dll combined.dat命令。

步骤3-1:然后,让combined.dat文件到encrypted_combined.dat文件,encryption_tool

第4步:打开“encrypted_combined.dat”文件,并将其制作成自己指定的cfg文件。

问题发生在步骤4。我无法自动构建解决方案风暴。 因为我已经做“combined.dat”Step3结果为“encrypted_combined.dat”encryption_tool

因此,如果我在没有任何操作的情况下构建Storm解决方案,ConvertModule2CFGFile项目无法打开最新更新encrypted_combined.dat

我该如何执行加密工具Step4

加密工具可以用参数执行。

ex :) cmd.exe /c "encryption tool.exe -mode_crypt combined.dat -output encrypted_combined.dat

在构建项目之前无法执行过程吗?

+0

使用def文件使用lib.exe实用程序为相应的* .dll文件创建* .lib文件。 dll模块不需要保存在解决方案中,因为它们在编译期间不需要。保持项目链接器设置为共享模式。 – ark1974

回答

1

在Visual Studio中,您可以创建Post-Build Events可以执行批处理文件。用它来组合你的两个DLL。

要使您的项目按正确的顺序生成,请在解决方案/项目中调整Build Dependencies and Build Order

+0

Thankyou。当我输入“Calc.exe”时它工作正常,但我怎样才能运行我自己的程序?当我输入“D:\ Tools \ CryptionTool.exe Combined.dll”时,它不起作用。错误MSB3027发生。 –

+0

尝试使用绝对路径来指定您的Combined.dll - 可移植的方式是使用$(SolutionDir)或$(ProjectDir)/bla/Combined.dll – Freakyy

0

考虑为Visual Studio命令提示符编写一个批处理文件 - 它将使您能够首先构建解决方案,然后您可以对喜欢的文件执行任何操作并轻松调用加密工具,然后构建最后一个解决方案。

这个线程应该让你开始:

How to create a Batch File for Visual Studio Command Prompt

相关问题