(Примечание: все это относится к VS2013. Может отличаться от других версий.)
Сначала используйте $(TargetDir)
, чтобы найти файл в выходном пути.
Пример: <#@ assembly name="$(TargetDir)MyDLL.dll" #>
Во-вторых, кажется, что генератор шаблонов запускается до того, как ссылки будут скопированы в выходную папку. Поэтому, если вы еще не выполнили сборку или не выполнили сборку хотя бы один раз с новой ссылкой, добавленной в проект, DLL-файла там не будет.
И на самом деле никогда не будет, пока вы не выполните успешную сборку, и если вы получите ошибку от генератора шаблонов, что ссылка не может быть найдена, вы никогда не будете успешно создавать и ты застрял.
Выход из этой ситуации заключается в том, чтобы либо временно исключить шаблон, получить проект для сборки (который будет копировать ссылки), а затем добавить его обратно; или вручную скопируйте DLL-файлы в каталог, на который они жалуются. Как только вещи строятся, они должны оставаться в строю.
(Так как генератор шаблонов запускается до копирования ссылок, я подозреваю, что возникнет аналогичная проблема, связанная с новым кодом. Если вы добавите новый код в библиотеку и используете его в своем шаблоне перед сборкой, вы застрянете из-за того, что шаблон не знает о новом коде, из-за чего он выдает ошибку, что делает вашу сборку неуспешной, поэтому он не получает новую версию, и вы снова застряли.)
(Вы также должны попадать в эту ситуацию всякий раз, когда вы чистите или перестраиваете свой проект, но у меня, похоже, такое случается не очень часто, так что может быть что-то большее, чем я понимаю.)