如何将所有引用移动到另一个文件夹中



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

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

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

如果你真的想玩构建过程,那么。。。

警告: 使用下面的东西可能会破坏你的构建,而且在未来的某个时候,它几乎肯定会造成更多的麻烦。在备份中仔细尝试,只有当您对结果感到满意时,才能进行更改!此外,如果您引用文件名,或者任何将源代码放入不同文件夹的尝试都会破坏一切,请确保使用相对文件夹路径

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

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

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

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

不过我不建议这么做。即使你知道自己在做什么,对抗正常的构建过程也很可能以脆弱或崩溃的构建系统告终。

相关内容

最新更新