Pio*_*iak 105

当然,这是一个例子:

call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Basic.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Basic.dll"
call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Common.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Common.dll"
Run Code Online (Sandbox Code Playgroud)

请注意您可能遇到的两个问题:

  1. 封闭的双引号(查看每个部分如何被"符号包围)

  2. 如果你想调用2个或更多批处理文件,请确保使用call命令,否则你将无法找到为什么第二个蝙蝠没有完成它的工作

  • 谢谢你关于"调用"的注释,它通过多次执行来解决我的问题. (14认同)
  • 即使SO现在要求我不解释我的感激之情:点2的+1) (2认同)
  • 可能需要更改当前目录,因为默认情况下它在`Bin`文件夹中运行.我需要在解决方案dir中运行,所以对我而言:`调用cd $(SolutionDir)`作为Post-build事件中的第一行. (2认同)
  • 你实际上是如何设置的?这是在 csproj 文件中吗? (2认同)

Mar*_*ann 30

是的,通过在构建后事件编辑器中添加对它的调用.

如果转到项目的"属性"页面,则应选择"生成事件"选项卡.您可以在Post-build事件命令行文本框中键入对批处理文件的调用.

如果要使用项目或解决方案中包含的路径引用批处理文件,可以单击" 编辑生成后..."按钮.这将打开"构建后事件命令行"对话框.

此对话框具有可以单击的宏>>按钮.它将向您显示可用于引用解决方案中的文件夹和文件的所有可用宏.

当您选择其中一个宏时,可以使用" 插入"按钮将它们插入到脚本中.


Pol*_*fun 9

除了调用.bat文件外,您还可以直接将批处理命令(即Windows控制台提供的常规命令 - cmd.exe)输入到预构建/后构建字段中.这可能更好,因为这意味着您不必单独维护批处理文件,因为所有命令都将成为项目的一部分.

  • 将构建后脚本与您的项目一起提交到 SCM 也同样容易。实际上,它更容易测试,它与您的文件一起进行版本控制,并且不会隐藏在项目文件中。就我个人而言,我没有真正好的理由(但很多人反对)在您的构建后操作属性中使用单行 CALL 之外的任何内容。 (2认同)