c# - 加载 Microsoft.AspNet.WebApi.Client System.Net.Http.Formatting.dll 时尝试为 T4 文件查找 "missing dependency"

标签 c# dependencies webclient asp.net-web-api2 t4

我使用的是 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/

相关文章:

c# - WebClient UploadData 在发布带有扩展 ascii 字符的 json 数据时出现 400 Bad Request 错误

如果键不存在,则使用 setter 的 C# 自定义字典类型

c# - 如何对已定义为接口(interface)的属性进行强类型化?

c# 将 DataGridView 保存到 Xml 文件

javascript - Rollup.js Unresolved 依赖项

cmake - 如何在 CMake 中构建过程后复制目标的所有运行时依赖项?

http - Powershell System.Net.WebClient 认证

c# - 以安全的方式乘分数 C#

java - "pom"类型依赖与范围 "import"和没有 "import"有什么区别?

credentials - 具有凭据的 WebClient 仍未下载文件