2016-08-16 3 views
0

При восстановлении решения, я получил сообщение об ошибке: -Visual Studio 2015, шаблон T4: директива Ассамблеи не использует теневое копирование

Error  Unable to copy file "obj\Debug\TargetTest.dll" to "bin\Debug\TargetTest.dll". The process cannot access the file 'bin\Debug\TargetTest.dll' because it is being used by another process.  

Когда я удалить директиву сборки, решение перестраивает: -

<#@ template debug="true" hostspecific="false" language="C#" #> 
<#@ assembly name="System.Core" #> 
<#@ assembly name="C:\\Code\\T4Template\\bin\\Debug\\TargetTest.dll" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<#@ import namespace="System.Reflection" #> 
<#@ output extension=".cs" #> 

Как это исправить? Я предполагаю, что это связано с конфигурацией теневого копирования в визуальной студии, но я не смог ее найти.

ответ

0

Шаблон времени дизайна T4 обрабатывается в разных доменах приложения под тем же процессом визуальной студии. При восстановлении решения Visual Studio пытается заменить ссылочную DLL и не может заменить его, поскольку он все еще используется.

Я работаю над этой проблемой, удалив AppDomain, в котором обрабатывается шаблон T4. См. msdn