Ответ 1
Существует и не зависит от событий пост-сборки.
Добавьте файл в свой проект, затем в свойствах файл выберите в разделе "Копировать в выходной каталог" либо "Копировать всегда", либо "Копировать, если новый".
См. MSDN.
Задача состоит в том, чтобы сформировать проект Visual Studio 2010, чтобы во время любой сборки или публикации некоторая утилита foo.exe
была скопирована в каталог вывода (bin
).
Раньше я выполнил задачу PostBuildEvent в .csproj(файл MSBuild):
<PropertyGroup>
<PostBuildEvent>
Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
</PostBuildEvent>
</PropertyGroup>
Но это не универсально. Во время публикации (Visual Studio 2010) foo.exe
появляется в каталоге bin
, но не копируется для вывода каталога публикации. Возможно, я делаю все совершенно неправильно, и есть стандартный механизм включения файлов в проекты, которые будут позже, во время сборки или публикации, скопированы в bin
?
Существует и не зависит от событий пост-сборки.
Добавьте файл в свой проект, затем в свойствах файл выберите в разделе "Копировать в выходной каталог" либо "Копировать всегда", либо "Копировать, если новый".
См. MSDN.
Мне нужно только нажать файлы во время сборки, поэтому я просто добавил запись в командной строке Post-build Event следующим образом:
Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"
Вы можете установить это, щелкнув правой кнопкой мыши свой проект в обозревателе решений, затем Properties > Build Events
В обозревателе решений выберите файлы, которые вы хотите скопировать в выходной каталог, и назначьте два свойства: - Создать действие = Содержимое - Копировать в каталог вывода = Копировать всегда
Это сделает трюк.
В моем случае установка Copy to Output Directory
в Copy Always
и Build не выполняла трюк, в то время как Rebuild сделал.
Надеюсь, это поможет кому-то!
Попробуйте добавить ссылку на отсутствующую dll из вашего сервиса/веб-проекта напрямую. Добавление ссылок на другой проект не сработало для меня.
Мне приходилось делать это только при публикации моего веб-приложения, потому что оно не копировало все необходимые DLL.
Именно поэтому мои соратники с неузнаваемостью с нейронически могут столкнуться с этим здесь, я предположил, что для веб-проектов, если связанный файл был внешним файлом .config, то "выходной каталог" будет тем же самым каталогом, что и web.config живет, т.е. ваш веб-проект. В ретроспективе совершенно неудивительно, что он копирует связанный файл в папку root/bin.
Итак, если он содержит файл appSettings, ваш открытый тег web.config будет
<appSettings file=".\bin\includedAppSettingsFile.config">
Duh.