У меня есть большое решение в настоящее время под VS2010, с большим количеством проектов и зависимостей. Некоторые из них установлены в GAC, некоторые из них только что включены из папки "lib". Мне нужно создать один из моих проектов (в частности, приложение WinForms) для работы на любых компьютерах без разработки без какого-либо процесса установки (за исключением среды выполнения .NET, конечно), как это делают портативные приложения.
Чтобы это работало, мне нужно, чтобы все связанные библиотеки DLL и их все дерево зависимостей в выходной папке моего EXE. Я могу сделать это, например, путем маркировки зависимостей "Копировать локальную" в окне свойств, но это работает только для прямых ссылок на проект EXE, поэтому этого недостаточно. Другой способ - создать проект установки, но мой клиент, а также я хочу этого избежать (в финальной версии я буду использовать ClickOnce). Конечно, я всегда могу сделать это исключительно вручную, собирая все DLL вручную, но это довольно кошмар.
Есть ли какой-нибудь инструмент, трюк msbuild, параметр командной строки, какой бы взломать, чтобы заставить Visual Studio собирать все дерево зависимостей моего EXE во время сборки и копировать их в выходную папку? Чтобы я мог просто объединить все файлы и отправить клиенту.