我目前在 VS2010 下有一个大型解决方案,有很多项目和依赖项。其中一些已安装到 GAC,其中一些仅包含在“lib”文件夹中。我需要构建我的一个项目(特别是 WinForms 应用程序),以便能够在任何非开发计算机上运行而无需任何安装过程(当然,.NET 运行时除外),就像便携式应用程序一样。
为此,我需要在我的 EXE 的输出文件夹中拥有所有引用的 DLL 及其整个依赖关系树。例如,我可以通过在属性窗口中将依赖项标记为“复制本地”来做到这一点,但这仅适用于 EXE 项目的直接引用,因此还远远不够。另一种方法是制作一个设置项目,但我的客户和我也想避免这种情况(在最终版本中,我将使用 ClickOnce)。当然,我总是可以完全手动完成,手动收集所有 DLL,但那是一场噩梦。
是否有一些工具、msbuild 技巧、命令行选项、强制 Visual Studio 在构建期间收集我的 EXE 的整个依赖关系树并将它们复制到输出文件夹的任何技巧?这样我就可以将所有内容压缩在一起并发送给我的客户。