我有一个在我的项目进程数.TT文件T4模板。 我也有我定义,以帮助该代码转换过程中的一些自定义类。
<#@ template language="C#" hostspecific="True" debug="True" #>
<#@ output extension="cs" #>
<#@ assembly name="System.Core.dll" #>
<#@ assembly name="$(TargetDir)\MyDependency.dll" #>
这部作品在Visual Studio中,我有一个VS宏它正确地定义了$(TARGETDIR)。
现在,我想在我的构建过程中执行代码生成过程。 我说:
<TransformOnBuild>true</TransformOnBuild>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
<IncludeDslT4Settings>true</IncludeDslT4Settings> <ItemGroup>
<T4ReferencePath Include="$(OutputPath)" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets" />
我的构建运行,但我得到:
C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ TextTemplating \ V10.0 \ Microsoft.TextTemplating.targets(407):试图解决集引用“$(TARGETDIR)\ MyDependency主持人抛出异常。 DLL”。 转型将不会运行。 下引发的异常:System.IO.FileLoadException:给定的程序集名称或基本代码无效。 (从HRESULT异常:0x80131047)在System.Reflection.AssemblyName.nInit在Microsoft.VisualStudio.TextTemplating.GlobalAssemblyCacheHelper.GetLocation(字符串强名称)在(RuntimeAssembly&组件,布尔forIntrospection,布尔raiseResolveEvent)在System.Reflection.AssemblyName.nInit() Microsoft.VisualStudio.TextTemplating.Sdk.Host.GenericTextTemplatingHost.ResolveAssemblyReference(字符串assemblyReference)在Microsoft.VisualStudio.TextTemplating.Engine.ResolveAssemblyReferences(ITextTemplatingEngineHost主机,TemplateProcessingSession会话)。 线= -1,柱= -1
很显然,这不会解决$(TargetDir)
在团队建设方面。
我尝试添加TARGETDIR到我的构建配置的属性组,但无济于事。 此值好好尝试通过向T4代码生成器的情况下。
我不想使用环境变量。
如何设置$(TargetDir)
正确的团队建设方面?