T4MVC"运行自定义工具"生成EnvDTO 7.0 vs 8.0 csc警告

Tod*_*son 11 asp.net-mvc envdte t4mvc asp.net-mvc-3

当我右键单击T4MVC.tt并选择"运行自定义工具"(即通过T4MVC.cs文件重建)时,我收到以下警告.

警告1个编译转型:假设集引用"EnvDTE,版本= 7.0.3300.0,文化=中性公钥= b03f5f7f11d50a3a"匹配"EnvDTE,版本= 8.0.0.0,文化=中性公钥= b03f5f7f11d50a3a",你可能需要提供运行时策略C:\ Development\EHealth-Trunk\src\EHealth.Web\T4MVC.tt 1 1

这真的没什么大不了的,我只是不喜欢在我的代码库中有(不必要的)警告......

Dav*_*bbo 3

我还没有完全弄清楚问题是什么,但我确实将其隔离到发生这种情况的一个小重现中:

\n\n
<#@ template language="C#" #>\n<#@ assembly name="EnvDTE" #>\n<#@ assembly name="VSLangProj" #>\n\n<#+ \nvoid Test(EnvDTE.Project Project) {\n    var vsProject = (VSLangProj.VSProject)Project.Object;\n    var refs = vsProject.References;\n}\n#>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在处理过程中会收到以下警告:

\n\n
Compiling transformation: Assuming assembly reference \'EnvDTE, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\' matches \'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\', you may need to supply runtime policy\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的 GAC 中唯一的 EnvDTE 是 8.0.0.0。看来问题与 VSLangProj 7.0.3300.0 (我唯一的)引用了 EnvDTE 7.0.3300.0 这一事实有关,而 EnvDTE 7.0.3300.0 不存在\xe2\x80\x99t 。

\n\n

显然,这还不是一个“答案”,但这是调查的开始:)

\n