2

在 .tt T4 模板中引用程序集时,我应该能够使用以下声明:

<#@ assembly name="$(SolutionDir)\..\..\Build\lib\HedgehogDevelopment.CodeGeneration.Extensions.dll" #>

据我所知,SolutionDir 没有被转换,我收到一条错误消息(下)

注意: HedgehogDevelopment.CodeGeneration.Extensions.dll不能添加到 GAC 或 Visual Studio 程序集文件夹,因为 DLL 需要与项目一起传递。

我不知道 TDS 代码生成是如何执行的,所以我在这里询问是否有人解决了类似的问题。

错误 | 10 |主机在尝试解析程序集引用“$(SolutionDir)......\Build\lib\HedgehogDevelopment.CodeGeneration.Extensions.dll”时抛出异常。转换将不会运行。

引发了以下异常:System.IO.FileLoadException:给定的程序集名称或代码库无效。(HRESULT 的异常:0x80131047)在 System.Reflection.AssemblyName.nInit(RuntimeAssembly& 程序集,布尔 forIntrospection,布尔 raiseResolveEvent)在 System.Reflection.AssemblyName..ctor(字符串 assemblyName)在 Microsoft.VisualStudio.TextTemplating.GlobalAssemblyCacheHelper.GetLocation(字符串strongName) 在 Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolveAssemblyReference(String assemblyReference) 在 Microsoft.VisualStudio.TextTemplating.Engine.ResolveAssemblyReferences(ITextTemplatingEngineHost 主机,TemplateProcessingSession 会话)

4

1 回答 1

5

确保添加HedgehogDevelopment.CodeGeneration.Extensions.dll到 GAC 或 Visual Studio Assemblies 文件夹:

https://github.com/HedgehogDevelopment/tds-codegen/wiki/Using-Extension-Methods

或者在指令中使用程序集的完整路径。

更新:

作为对此的更新,扩展方法现已移至T4 文件中,因此您不再需要将 DLL 部署到 GAC 或 Visual Studio 文件夹。您可以在 Github 存储库中找到更新的文件

于 2014-01-29T18:23:22.517 回答