我使用的是 Tangible Engineering 的“T4 编辑器”,虽然仍有一些缺陷,但它是一个非常好的 T4 编辑器,并且在配置使用 WebApi 客户端的 T4 模板时,它继续显示以下消息:
"$(SolutionDir)packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll could not be loaded. There was an exception during load: A dependency could not be found!"
我已经搜索了包的 NuGet 存储库条目,跟踪了所有“依赖项”链接,通过问题条目之前的“程序集”条目添加了相应的程序集,但我仍然收到错误。从下面的代码中可以看出,除了厨房水槽外,我把所有东西都扔进去了,但无济于事。这里的一点指导会有很长的路要走。 我的环境是 Visual Studio 2013 Premium、ReSharper、PowerTools,当然还有 Tangible 的 T4 编辑器(可以为那些想要尝试并复制错误的人下载免费版本,不,我不为他们工作我也不会因为推荐它而从他们那里得到补偿——我只是喜欢它)。 以下是模板:
<#@ template debug="true" hostSpecific="true" language="C#" #>
<#@ CleanupBehavior Processor="T4VSHost" CleanupAfterProcessingTemplate="true" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq"#>
<#@ assembly name="System.Configuration" #>
<#@ assembly name="EnvDTE"#>
<#@ import namespace="System" #>
<#@ import namespace="System.Data"#>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Xml.Linq" #>
<#@ import namespace="System.Globalization" #>
<#@ import namespace="System.Reflection" #>
<#@ import namespace="System.CodeDom" #>
<#@ import namespace="System.CodeDom.Compiler" #>
<#@ import namespace="Microsoft.CSharp"#>
<#@ import namespace="System.Text"#>
<#@ import namespace="System.Configuration" #>
<#@ output extension=".generated.cs" #>
<#@ assembly name="System.Threading" #>
<#@ import namespace="System.Threading" #>
<#@ import namespace="System.Threading.Tasks" #>
<#@ assembly name="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="System.Runtime.Serialization"#>
<#@ assembly name="$(SolutionDir)packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll" #>
<#@ assembly name="$(SolutionDir)packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.Tasks.dll"#>
<#@ assembly name="$(SolutionDir)packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll"#>
<#@ assembly name="$(SolutionDir)packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll"#>
<#@ assembly name="$(SolutionDir)packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll"#>
<#@ assembly name="$(SolutionDir)packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll" #>
<#@ assembly name="C:\AoCTools\AoCFramework\AoC.AoCTools.T4CodeGenerationCmn.dll" #>
<#@ assembly name="C:\AoCTools\AoCFramework\AoC.AoCTools.T4CodeGeneration.dll" #>
<#@ import namespace="AoC.AoCTools.T4CodeGeneration" #>
<#@ import namespace="AoC.AoCTools.T4CodeGenerationCmn" #>
最佳答案
我想在这里抛出一个相对适用的答案。事实证明,在尝试从 GAC 获取包时,T4 小工具有点疏忽。它会很好地获取标准的 GAC 内容,但是找不到提供的一些扩展。
如果那些“丢失”的包只是被复制到正在查找其他所有内容的目录中(来自您自己的库的独特包,具有其他依赖项的第三方库等)并包含所有内容,那么“错误”应该消失。并不是说这是最终答案,但在某些情况下会有所帮助。
关于c# - 加载 Microsoft.AspNet.WebApi.Client System.Net.Http.Formatting.dll 时尝试为 T4 文件查找 "missing dependency",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920764/