gpt4 book ai didi

c++ - 在 Visual Studio 中,我不想提交我的 Debug 文件夹,但它里面有 dll 文件,如果我移动它,项目将无法编译

转载 作者:行者123 更新时间:2023-11-28 07:10:34 24 4
gpt4 key购买 nike

我该怎么办?

基本上,我想提交我的 Visual Studio 2012 项目,但它有一个我们传统上不提交的 Debug 文件夹。唯一的问题是 Debug 文件夹中有项目的 dll,如果我将 dll 移动到文件夹的父文件夹,项目将不再编译。

结构如下:

项目文件夹 > MSVC_2012 > Debug文件夹、sln文件等

在那个 Debug 文件夹中是 dll。如何将它从 Debug 文件夹移到 MSVC_2012 中?

最佳答案

您的问题在细节上并不完全清楚,但这里有一些选项(以及您可以改进问题的方法):

  • 你的问题看起来像an XY problem .您说 “如果我将 dll 移动到文件夹的父文件夹,项目将不再编译。” 在这种情况下,这里真正的问题是为什么它不编译。我们需要更多的细节来找出原因。您还需要更清楚“如果我移动 dll”是什么意思——您不能在编译 DLL 之前“移动”它,如果您之后移动它,那么根据定义编译工作,所以实际上您的声明就目前而言没有意义。无论如何,您可能应该专注于修复损坏的构建,而不是摆弄它以满足版本控制的需要。

  • 您没有具体说明 DLL 文件位于 Debug 文件夹中的问题的原因。我认为这是因为您想将它提交给您的 VCS(您没有明确说明您的目标)。在这种情况下,您是否知道提交代码的二进制输出是不正常的做法?因此,一种解决方案可能是重新考虑您一开始尝试提交 DLL 的原因。

  • 您没有指定您使用的是哪个 VCS。在 Git 中(我假设在大多数其他 VCS 中)您可以更精细地控制从提交中排除的内容,而不是整个文件夹。因此,另一种选择是将 VCS 配置为忽略 Debug 文件夹,但其中包含的任何 DLL 文件除外。

  • 您可以在 配置属性 -> 常规 -> 输出目录 下的项目属性页中更改 MSVC 放置 DLL 文件的位置。大概这就是您提到“移动”DLL 时的意思吧?

  • 最后,根据其他人对您问题的评论,如果您希望 DLL 位于两个位置,您可以使用构建后步骤将其复制到相关位置。为此,请转到 Configuration Properties -> Build Events -> Post-Build Event 下的项目属性页,然后输入相关命令(与在命令提示符下键入的命令相同)以进行复制例如copy myfile.dll ..,或者如 Alex Farber 建议的那样,使用 VS 宏以更通用的方式指定位置。 See this page获取可插入到命令中的可用宏列表。这应该被认为是最后的解决方案,原因有两个 - (a) 它是一种 hack,因为你正在冗余地复制二进制输出以规避版本控制和/或构建中的缺陷,当你应该从根本上解决问题时, (b) 构建事件在 Visual Studio 中有一个严重的缺陷,那就是它们不允许继承值。这使它们成为大型项目的维护噩梦。

关于c++ - 在 Visual Studio 中,我不想提交我的 Debug 文件夹,但它里面有 dll 文件,如果我移动它,项目将无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com