默认情况下,Visual Studio 20015中的项目设置调试/工作目录将保存在* .user文件中,因为它不是用户特定的,所以我不会检入我的仓库。不过,当我对项目进行干净的结账时,我希望有$(ProjectDir)
以外的其他东西站在那里。除*.user
文件外还有其他存储工作目录的地方吗?
编辑1:最初的想法是我有一个包含多个项目的解决方案,所有创建的二进制文件(dll
和exe
)最终都在一个文件夹中叫bin
。如果我想调试它,我不想在干净结账后再次编辑工作目录。
编辑2:在我的解决方案中的每个项目的后期构建步骤中,我将二进制文件复制到bin
文件夹中。如果我从VS中启动其中一个可执行文件,它将从$(ProjectDir)
文件夹启动它们,当然不是从bin
文件夹启动它们。这就是为什么它找不到dll
以及我为什么要设置工作目录的原因。我可以更改我的项目的输出目录,但后来我收到的很多文件最终都在我不想要的bin
文件夹中。无论如何我会尝试的;也许我错过了什么。继续......
编辑3:正如预期的那样,如果我将输出目录更改为bin
文件夹,一切正常,除了一些额外的文件,最终到那里,我不知道想要那个(例如*.pbo
,这没关系,*.iobj
,*.ipdb
等等。)也许这是我必须支付的价格,但我不喜欢它。
所以,问题仍然存在:如何更好地控制哪个文件在构建后的哪个位置结束,并且仍然可以在不更改工作目录的情况下从VS运行它?
答案 0 :(得分:0)
工作目录不必是包含DLL的目录。事实上,您绝对不希望这是运行应用程序的要求。它不仅是一种非常意外的故障模式,而且还可能存在潜在的安全风险。
将所需的DLL放在与应用程序可执行文件相同的目录中。这是装载机看起来的第一个地方。如有必要,请在库项目中使用post-build事件将其复制到那里。
答案 1 :(得分:0)
好吧,因为没有人可以帮助我,我决定将输出目录更改为bin文件夹,以便VS从正确的文件夹启动我的应用程序。 我如何摆脱不属于那里的所有额外文件,我将在以后找到一种方法。