我正在尝试在msbuild脚本中使用exec任务来工作,并且发现了一个非常烦人的问题.exec命令很好,只是我正在运行的进程(Ncover.Console.exe)无法处理目录名末尾的反斜杠.
为了说明一个剪切示例,以下工作:
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w c:\out" />
Run Code Online (Sandbox Code Playgroud)
但这失败了(请注意"c:\ out"末尾的斜线):
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w c:\out\" />
Run Code Online (Sandbox Code Playgroud)
我不能简单地删除尾部反斜杠的原因是使用批处理读取值.所以在与上面相同的剪辑中,它实际上看起来像这样:
<exec command="NCover.Console.exe nunit-console.exe some.dll [snip] //w
"%(TestAssemblies.RootDir)%(TestAssemblies.Directory)" />
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何删除这个讨厌的尾随反斜杠?
提前致谢.
每次在 Visual Studio 中首次构建新的 Qt 项目时,即使安装了 VS Tools,我也必须复制一些与 Qt 相关的二进制文件(Qt5Core.dll、平台文件...)。否则,当从 Visual Studio 运行时,Qt5Core.dll(或调试)可以正确找到,但找不到平台 DLL:
显然,当从 IDE 外部运行时,例如在自动化构建的单元测试期间,它也会失败。
Qt 有一个工具可以执行此操作,称为windeployqt,它基本上查找依赖项 (Qt) 并复制它们。例如:
c:\Qt\Qt5.12.1\bin\windeployqt c:\projects\qt-project\Release --release
Run Code Online (Sandbox Code Playgroud)
将分析其中的可执行文件c:\projects\qt-project\Release并将所需的 DLL、插件、翻译和其他相关二进制文件复制到该位置。
我对如何集成windeployqt到 Visual Studio 的构建工作流程感兴趣,因此这个过程是自动的(即使在不同的计算机上签出)。