0

我有一个有很多参考资料的项目。它们都与 .exe 文件位于同一目录中。有时很难找到 .exe,因为它的文件太多。

如何将引用移动到项目中的另一个文件夹?

4

1 回答 1

0

我的第一个建议是寻找解决问题的简单方法 - 您需要在输出文件夹中找到 exe 吗?(真的吗?!)你能把 .exe 的快捷方式放在更方便的地方,这样你就不必搜索它了吗?您可以创建一个批处理文件,将您想要的文件复制到不同的部署位置吗?你能自动化你对 .exe 所做的任何摆弄,这样你就不需要自己靠近输出文件夹了吗?

如果您真的想玩构建过程,那么...

警告: 弄乱下面的东西可能会破坏你的构建,而且几乎可以肯定它会在未来的某个时候造成比它值得的更多的麻烦。在备份上仔细尝试,仅在您对结果满意时才提交更改!此外,如果您引用文件名,请确保使用相对文件夹路径,否则任何将源代码放入不同文件夹的尝试都会破坏一切。

您的应用程序引用的 DLL 可以放在 .exe 旁边的子文件夹中,它应该可以找到它们并正常运行。但是,默认情况下,Visual Studio 构建过程会将引用的 dll 与 exe 一起复制(而不是复制到子文件夹中)。

可以在每个参考的属性中禁用此复制步骤 - 关闭“复制本地”选项。(您还需要清理 Debug/Release 文件夹以删除 DLL 的任何旧副本,否则事情似乎可以正常工作,但随着旧 DLL 随着您的代码更改越来越过时而逐渐停止工作) . 如果没有本地复制的 dll,exe 将无法运行,因此您需要发明自己的方式来构建已部署的文件结构(您的 dll 子文件夹)。

对此有多种解决方案,但最简单的方法之一(最不可能破坏其他任何东西)是添加一个构建后事件命令,将 dll 文件复制到您的部署位置。您可以将引用复制到 .exe 旁边的 Debug/Release 文件夹中,也可以选择将 exe 及其所有依赖项复制到完全不同的位置。请注意,如果您想避免不必要地减慢构建速度,则需要“仅在较新时复制”。

(另一种选择是更改每个项目或整个解决方案构建的输出文件夹,但这更有可能破坏很多东西)

我不建议这样做。即使您知道自己在做什么,与正常的构建过程作斗争也很可能以脆弱或损坏的构建系统而告终。

于 2013-08-02T22:43:12.740 回答