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