Visual studio 2010 T4“;编译转换:具有相同标识的程序集'';已经导入了。请尝试删除其中一个重复引用;?

Visual studio 2010 T4“;编译转换:具有相同标识的程序集'';已经导入了。请尝试删除其中一个重复引用;?,visual-studio-2010,templates,code-generation,t4,Visual Studio 2010,Templates,Code Generation,T4,我一直在努力解决这个问题 编译转换:已导入具有相同标识“xxxx”的程序集。尝试删除其中一个重复引用。 当使用T4在设计时生成一些代码时-使用两个不同的可重用模板保存为.ttinclude文件,并在许多不同的“父”模板中共享 当我删除其中一个引用(在我自己的ttinclude文件中)时,我会在这两者之间切换,该引用是: 编译转换:找不到类型或命名空间名称“yyy”(是否缺少using指令或程序集引用? 兜圈子,有什么想法吗 嗯,找到了一个肮脏的解决办法 如果有人提出一些建议,你会喜欢更好的解决方

我一直在努力解决这个问题

编译转换:已导入具有相同标识“xxxx”的程序集。尝试删除其中一个重复引用。

当使用T4在设计时生成一些代码时-使用两个不同的可重用模板保存为.ttinclude文件,并在许多不同的“父”模板中共享

当我删除其中一个引用(在我自己的ttinclude文件中)时,我会在这两者之间切换,该引用是:

编译转换:找不到类型或命名空间名称“yyy”(是否缺少using指令或程序集引用?


兜圈子,有什么想法吗

嗯,找到了一个肮脏的解决办法

如果有人提出一些建议,你会喜欢更好的解决方案/方法吗

将我的流程发布为可能对其他人有所帮助


  • 使用template指令放置我的模板并包括 模板进入调试模式,例如

  • 弹出打开%TEMP%以查看生成的文件(最近) 已修改)仅在获取编译转换错误之后

  • 搜索所使用的缺少/折叠的程序集/类。 发现哪些“包含”模板具有相同的引用,例如

    以及:

  • 已打开已创建的非自定义包含的包含文件夹 导致与我自己的冲突

    ..\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes

  • 打开此文件,删除其麻烦的导入

  • 在同一文件夹中使用新名称保存它,并更新引用以指向此新版本,例如

  • 将所需的导入放到“父”模板中,并从中删除 “包含”模板。就我而言,这是:


  • 现在它运行良好,没有任何问题,没有重复的导入,所有必需的程序集都被正确引用

    我确信有一种更复杂的方法来处理T4代码重用,它完全否定了这个问题。我最初尝试导入我自己的自定义程序集,带有模板的帮助程序,但当我尝试构建自定义类库时,锁定的DLL出现了一个经典问题

    似乎有一个解决这个问题的方法,而且很受欢迎,但对于我相当简单的需求来说,看起来有点过分了。也许等我有更多时间的时候。

    你说“打开%Temp%”是什么意思?我也想弄明白这一点,并利用EnvDTE,但我对模板和EnvDTE的东西还是有点陌生。开始>键入“%temp%”,这是打开类似“C:\Users[YourUserName]\AppData\Local\temp”之类内容的快捷方式-祝你好运!