我创建了一个空的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中,则尝试保存模板文件会导致以下错误:
&#34;编译转型。元数据文件&#39; Microsoft.Spatial.dll&#39;可以 找不到。&#34;
请注意,它只是导致错误的Microsoft.Spatial.dll,接受了Newtonsoft.Json.dll。如果我在Microsoft.Spatial.dll前加上&#34; $(ProjectDir)bin&#34;然后就被接受了。
我想避免使用路径前缀(因为DLL的位置取决于我无法控制的项目类型),但最让我困惑的是为什么可以指定来自NuGet包的一个DLL而没有路径前缀,而另一个DLL导致失败。