Каковы последствия использования System.Reflection.Assembly.Load (System.IO.File.ReadAllBytes (path)) в T4? - PullRequest
1 голос
/ 08 апреля 2010
System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path)) 

Так что это обходной путь для невозможности использовать T4 для отражения или чтения других файлов в проекте или решении без блокировки двоичных файлов из этой записи . Комментарии подразумевают проблему с памятью.

В комментариях говорится о недостатке без выгрузки, это будет мусором во время работы?

будет ли утечка памяти, если вы с помощью этого кода создадите что-то в T4, измените файл, из которого он работал, или T4, а затем T4 будет перезапущен?

Ответы [ 2 ]

2 голосов
/ 10 апреля 2010

Это зависит от количества и размера ваших сборок. T4 перезапускает AppDomain генерации кода после 25 запусков, поэтому это может не быть проблемой Подробнее здесь: http://www.olegsych.com/2008/05/t4-architecture/

0 голосов
/ 29 апреля 2010

Я думаю, что лучший способ сделать это - сделать теневую копию сборки

Спасибо Muse VSExtensions

...