![]() |
完美的开心果 · 使用java8API遍历过滤文件目录及子目录 ...· 1 月前 · |
![]() |
纯真的鸵鸟 · 【Java】读取目录下指定后缀的文件,包括子 ...· 1 月前 · |
![]() |
绅士的跑步机 · Java开发笔记(九十五)NIO配套的文件工 ...· 1 月前 · |
![]() |
强悍的核桃 · phpoffice/phpword - ...· 1 月前 · |
![]() |
傻傻的馒头 · 利用Pycharm + ...· 7 月前 · |
![]() |
完美的生姜 · sed中的非贪婪(不情愿)正则表达式匹配?- ...· 8 月前 · |
![]() |
腹黑的豆浆 · GridView利用CheckBox复选框列 ...· 1 年前 · |
![]() |
憨厚的西红柿 · MySql如何去除字符串前缀,两边,后缀_M ...· 1 年前 · |
我有一个依赖于外部C++文件的Visual Studio项目。如何使Visual Studio在生成项目时自动将此DLL文件复制到输出目录(debug/release)?
发布于 2009-11-22 01:19:34
在项目中使用生成后操作,并添加命令以复制有问题的DLL。构建后操作以批处理脚本的形式编写。
输出目录可以引用为
$(OutDir)
。项目目录为
$(ProjDir)
。尝试在适用的情况下使用相对路径,以便您可以复制或移动项目文件夹,而不会破坏生成后操作。
发布于 2014-09-05 07:07:14
$(OutDir)原来是VS2013中的一个相对路径,所以我必须将它与$(ProjectDir)结合起来才能达到预期的效果:
xcopy /y /d "$(ProjectDir)External\*.dll" "$(ProjectDir)$(OutDir)"
顺便说一句,您可以通过在开头添加“echo”来轻松地调试脚本,并观察构建输出窗口中展开的文本。
发布于 2019-06-17 21:32:40
xcopy /y /d "$(ProjectDir)External\*.dll" "$(TargetDir)"
您还可以参考相对路径,下一个示例将在位于项目文件夹上一级的文件夹中找到DLL。如果在一个解决方案中有多个使用DLL的项目,这会将DLL的源代码放在一个公共区域,当您将其中任何一个设置为“启动项目”时,都可以访问它们。
xcopy /y /d "$(ProjectDir)..\External\*.dll" "$(TargetDir)"
/y
选项无需确认即可复制。
/d
选项检查目标中是否存在文件,如果存在,则仅在源的时间戳比目标的时间戳新的情况下进行复制。
我发现至少在较新版本的Visual Studio中,例如VS2109,
$(ProjDir)
是未定义的,必须使用
$(ProjectDir)
。
如果在
xcopy
中省略了目标文件夹,则应默认将其放在输出目录中。这对于理解为什么
$(OutDir)
本身没有帮助是很重要的。
至少在Visual Studio的最新版本中,
$(OutDir)
被定义为输出文件夹的相对路径,如
bin/x86/Debug
。单独使用它作为目标将从项目输出文件夹开始创建一组新的文件夹。例如:
… bin/x86/Debug/bin/x86/Debug
。
将其与项目文件夹相结合,应该会让您找到合适的位置。例如:
$(ProjectDir)$(OutDir)
。
但是,
$(TargetDir)
将在一个步骤中提供输出目录。
Microsoft's list of MSBuild macros for current and previous versions of Visual Studio
https://stackoverflow.com/questions/1776060
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
![]() |
强悍的核桃 · phpoffice/phpword - CSDN文库 1 月前 |