【问题标题】:How to execute process before build multiple projects in a solution如何在解决方案中构建多个项目之前执行流程
【发布时间】:2017-08-10 04:36:18
【问题描述】:

我在 Windows 7 Ultimate x64 上使用 VS2010。 我想在一个解决方案中自动构建多项目。

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

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

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

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

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

第 1,2 步Storm_Module1Storm_Module2 的结果是标准 Windows DLL。

第三步CombineModule12的结果是打开Storm_Module1.dllStorm_Module2.dll使"合并。 dat" 文件,例如cmd.exe /c copy /b storm_module1.dll + storm_module2.dll combined.dat 命令。

步骤 3-1 : 然后,使用 encryption_toolcombined.dat 文件制作成 encrypted_combined.dat 文件.

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

问题出现在第 4 步。我无法自动构建解决方案风暴。 因为我必须使用 encryption_toolStep3"combined.dat" 结果转换为 "encrypted_combined.dat"

所以,如果我不采取任何行动构建 Storm 解决方案,ConvertModule2CFGFile 项目将无法打开最新更新的 encrypted_combined.dat

如何在Step4之前执行加密工具。

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

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

构建项目之前不能执行流程吗?

【问题讨论】:

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

标签: c++ visual-studio-2010 project execute solution


【解决方案1】:

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

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

【讨论】:

  • 谢谢。当我输入“Calc.exe”时它可以成功运行,但我如何运行我自己的进程?当我输入“D:\Tools\CryptionTool.exe Combined.dll”时它不起作用。发生错误 MSB3027。
  • 尝试使用绝对路径来指定您的 Combined.dll - 一种可移植的方式是使用 $(SolutionDir) 或 $(ProjectDir)/bla/Combined.dll
【解决方案2】:

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

这个帖子应该让你开始:

How to create a Batch File for Visual Studio Command Prompt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多