Это необязательно.
Один из проектов в вашем решении отмечен как проект запуска, выделенный жирным шрифтом в окне Solution Explorer. Проект EXE, например, приложение консоли. Вы использовали Project + Add Reference для добавления ссылок на другие проекты в решении, чтобы вы могли использовать библиотеки классов, которые эти проекты генерируют в приложении консоли.
Эти ссылки будут иметь свойство Copy Local для True.
Когда вы строите свой проект, MSBuild автоматически отправит скопирует сборки из своего каталога bin \ Debug в каталог bin \ Debug вашего приложения в режиме консоли, благодаря этой настройке Copy Local. И он достаточно умен, чтобы также посмотреть на зависимости этих библиотек классов и скопировать их.
Итак, после завершения сборки в каталоге bin \ Debug будет не только EXE-файл проекта консольного режима, но и также всем DLL, которые необходимо выполнить должным образом.
Есть несколько способов, что это может пойти не так, и MSBuild не может понять, что такая зависимость действительно существует. Довольно редко, вам, например, пришлось бы использовать Reflection в вашем коде для загрузки сборок (Assembly.Load() и друзей). Обходной путь для этого заключается в том, чтобы явно скопировать зависимость в событии после сборки. Вы не оставили в своем вопросе достаточного количества хлебных крошек, чтобы судить, действительно ли это проблема.
То, о чем вы просите, конечно, возможно, IDE просто не облегчает, потому что он не предназначен, чтобы предположить, что это было необходимо вообще. Вам нужно будет заменить параметр «Выходной путь сборки +» на, скажем, ..\Debug
.Вы можете создать свой собственный шаблон проекта с уже установленным параметром. Создайте новый проект библиотеки классов, измените настройку и используйте File + Export Template, чтобы создать шаблон. Вы получите его в следующий раз при создании проекта.
Но, действительно, сначала узнайте, почему по умолчанию копия Локальная техника не работает на вас.
Спасибо, я думаю, что это то, что я ищу - Я попытаюсь посмотреть, работает ли это позже сегодня (извините за то, что вы так долго). – Superbest
Вы действительно не должны изменять глобальные защищенные файлы. Фактически, это может нарушить обслуживание, так что если шаблоны будут обновлены для исправлений ошибок или новых функций, ваш измененный файл не будет обновляться. Вместо этого вы можете установить '' в свой собственный .csproj, и он перезапишет глобальную настройку (если импортировано первым). Это рекомендация в рамках проектов MSBuild. –
Heath
Я решил свою проблему, создав новый шаблон с набором выходных каталогов, как вы описали, спасибо! – Superbest