Reference VS 2015 RC中的装配参考故障(VS 2013中的工程)

Reference VS 2015 RC中的装配参考故障(VS 2013中的工程),reference,.net-assembly,t4,visual-studio-2015,Reference,.net Assembly,T4,Visual Studio 2015,我创建了一个空的ASP.NET项目,并向其中添加了以下T4模板: <#@ template debug="false" hostspecific="false" language="C#" #> <#@ assembly name="System.Core" #> <#@ assembly name="Newtonsoft.Json.dll" #> <#@ assembly name="Microsoft.Spatial.dll" #> <#

我创建了一个空的ASP.NET项目,并向其中添加了以下T4模板:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="Newtonsoft.Json.dll" #>
<#@ assembly name="Microsoft.Spatial.dll" #>
<#@ output extension=".txt" #>

我还添加了NuGet软件包Newtonsoft.Json和Microsoft.Spatial。使用Visual Studio 2013编译此项目后,我可以编辑模板文件,并在保存时正确生成输出

但是,如果我将同一项目加载到Visual Studio 2015 RC中,则尝试保存模板文件会导致以下错误:

“无法编译转换.Metadata文件'Microsoft.Spatial.dll' 找不到。”

请注意,只有Microsoft.Spatial.dll会导致错误,接受Newtonsoft.Json.dll。如果我在Microsoft.Spatial.dll前面加上“$(ProjectDir)bin”,则它将被接受


我希望避免使用路径前缀(因为DLL的位置取决于我无法控制的项目类型),但最让我困惑的是,为什么NuGet包中的一个DLL可以在没有路径前缀的情况下指定,而另一个DLL会导致失败。

GAC中是否有Newtonsoft.Json.DLL的副本?如果是这样,T4可能正在使用该版本,而不是您项目中的版本。和它查找“System.Core”的方式一样,不需要完整的路径。是的,我还认为它使用的是来自GAC的Json.Net。但我想知道为什么VS 2013能起作用。当然,除非两个总成都在VS 2013机器上的GAC中。我会检查的。不,我在测试的地方检查了两台机器。它们都没有在GAC中注册Newtonsoft.Json或Microsoft.Spatial。所以一定是别的原因。