花了一段时间才解开,但我有一个工作TextTransform.exe
!以下是我认为必要的步骤(注意:仅使用 VS2015 和 .NET 4.6.1 进行了测试):
首先,在构建机器上,将以下所有文件复制到C:\Program Files (x86)\Common Files\microsoft shared\TextTemplating\14.0
(或者您希望该工具结束的任何地方):
C:\Program Files (x86)\Common Files\microsoft shared\TextTemplating\14.0\TextTransform.exe
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.TextTemplating.14.0\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.TextTemplating.14.0.dll
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.TextTemplating.Interfaces.14.0.dll
C:\Program Files (x86)\MsBuild\14.0\Bin\Microsoft.CodeAnalysis.dll
C:\Program Files (x86)\MsBuild\14.0\Bin\Microsoft.CodeAnalysis.CSharp.dll
C:\Program Files (x86)\MsBuild\14.0\Bin\Microsoft.CodeAnalysis.VisualBasic.dll
C:\Program Files (x86)\MsBuild\14.0\Bin\System.Reflection.Metadata.dll
如果您的 T4 模板包含 C#/VB 代码,Microsoft.VisualStudio.TextTemplating.Interfaces.10.0
and Microsoft.VisualStudio.TextTemplating.Interfaces.11.0
程序集将从动态创建的应用程序域中解析,并且不会在旁边找到TextTransform.exe
。它们必须在 GAC 中注册。
在管理员命令提示符下,执行:
gacutil -i Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll
gacutil -i Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll
Note: gacutil
通常发现于C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
.
创建一个TextTransform.exe.config
文件旁边TextTransform.exe
具有绑定重定向(可能需要也可能不需要,具体取决于您的 .NET 版本):
<?xml version ="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="1.1.37.0" newVersion="1.1.36.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
When TextTransform.exe
第一次启动时,它会检查以下位置的文件夹%VS140COMNTOOLS%\..\IDE\PrivateAssemblies
如果不存在则抛出异常。
所以,要么创建一个%VS140COMNTOOLS%
相应地指向路径的环境变量,或创建一个空的..\IDE\PrivateAssemblies
相对于
工作目录在哪里TextTransform.exe
将被调用。