重建解决方案时,我得到错误消息:-
Error Unable to copy file "objDebugTargetTest.dll" to "binDebugTargetTest.dll". The process cannot access the file 'binDebugTargetTest.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" #>
如何解决这个问题?我猜这与visual studio中的阴影复制配置有关,但是我找不到它
T4设计时间模板在visual studio的相同流程下在不同的App域进行处理。重新构建解决方案时,Visual Studio会尝试替换引用的DLL,但由于DLL仍在使用中,因此无法替换它。
我通过删除处理T4模板的AppDomain来解决这个问题。看到msdn