Visual studio 2012 T4模板卷影复制不起作用
我使用VS2012和T4模板,这意味着您可以在模板中引用程序集,然后重新编译该程序集。但这对我根本不起作用。当我尝试重建程序集时,会出现如下错误:Visual studio 2012 T4模板卷影复制不起作用,visual-studio-2012,t4,Visual Studio 2012,T4,我使用VS2012和T4模板,这意味着您可以在模板中引用程序集,然后重新编译该程序集。但这对我根本不起作用。当我尝试重建程序集时,会出现如下错误: Unable to copy file "obj\Debug\xxx.dll" to "..\bin\xxx.dll". The process cannot access the file '..\bin\xxx.dll' because it is being used by another process. 唯一的解决办法是重新启动Visu
Unable to copy file "obj\Debug\xxx.dll" to "..\bin\xxx.dll".
The process cannot access the file '..\bin\xxx.dll' because it is being used by another process.
唯一的解决办法是重新启动VisualStudio,这太单调了,我准备完全放弃T4。我可能做错了什么?所以这还不是一个真正的答案,但希望我们能做到
在VS2013中测试运行了以下内容(我知道您运行的是VS2012)
这在VS2013中运行得很好,据我记忆所及,它在VS2012中也运行得很好。我将尝试在我的一台机器上安装VS2012,但您是否介意在您的安装上测试这个简单的示例,以验证您的解决方案中没有包含dll的内容
如果您对项目文件感兴趣,可以在此处找到:
我也在解决类似的问题。T4设计时模板在visual studio的同一流程下在不同的应用程序域中处理。重建解决方案时,Visual Studio尝试替换引用的DLL,但由于该DLL仍在使用中,因此无法替换
我通过删除处理T4模板的AppDomain解决了这个问题。请参见我认为这是在VS2012 SP1中添加的。您使用的是哪个版本?我的错误是,在VS2010 SP1中添加了。VS2012应该支持it oob。你有一个重新编译它的示例吗?@FuleSnabel:任何引用任何可执行文件的汇编指令都会这样做。VS锁定该文件,如果我尝试重新编译它,它会失败,因为该文件不可写。我会在有时间时尝试一下,然后报告。谢谢
<#@ assembly name = "$(SolutionDir)\TestProj\bin\Debug\TestProj.dll"#>
<#@ import namespace = "TestProj"#>
namespace ConsoleApplication1
{
class <#=Testing.Name#>
{
}
}
namespace TestProj
{
public static class Testing
{
public static string Name
{
get { return "Tester" ;}
}
}
}