首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与依赖项DLL相比,在不同文件夹中输出编译目标的正确方法是什么?

与依赖项DLL相比,在不同文件夹中输出编译目标的正确方法是什么?
EN

Stack Overflow用户
提问于 2017-01-31 12:08:11
回答 1查看 644关注 0票数 0

我有一个Visual解决方案文件,其中有几个项目(主要是C++),

其中大多数是以非常标准的方式配置的,将输出目录设置为"bin“目录。

其中一些用户需要将它们的主要输出目标输出到"bin“子目录(即"bin\others"),但是它们的所有DLL依赖项(作为NuGet包管理)仍然被复制到"bin”目录中。

(依赖项DLL必须位于\bin中,因为“其他”项目是运行时由EXE in \bin加载的DLL,因此必须在EXE路径中找到依赖项)

输出路径结构如下所示:

代码语言:javascript
复制
\bin (main EXE and ALL dependencies DLLs)  
\bin\others (others projects, with their dependencies DLL in \bin)  

到目前为止我尝试过的是:

  1. 更改“其他”项目的$(OutDir),但这不起作用,因为所有NuGet依赖项也将复制到同一个输出目录中。
  2. 将$(OutDir)保持为\bin,但将"others“项目TargetName更改为"others\$(ProjectName)",但这会在从clean (即自动生成中)进行重建时产生错误,因为MSBuild (实际上是在VC++项目中默认包含的Microsoft.CppClean.targets文件)试图写入"$(IntDir)$(TargetName).Build.CppClean.log",而”$(IntDir)$(TargetName).Build.CppClean.log“并不存在(因为”$(IntDir)\ does \“尚未创建)。

我想避免构建后的操作,因为像cmd这样的命令在通过MSBuild并行自动构建时有问题,并且必须手动维护项目中的MSBuild任务( inside不拒绝它们,AFAIK)。

对于如何解决这个问题,有什么想法或建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-05 10:31:03

默认dll搜索路径包括path环境变量(MSDN:桌面应用程序的标准搜索顺序 )中列出的目录。

您可以考虑在调试环境“配置属性->调试->环境”中向path变量添加必需的路径。类似于:"PATH=$PATH;$(SolutionDir)\bin\others“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41957209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档