我有一个.tt脚本需要引用几个外部程序集.
T4主机是否可以自动包含项目中引用的程序集 - 而不是手动为每个程序集添加程序集指令?
例如,当使用相对于的路径时,从nuget引用程序集是一个移动目标$(ProjecDir)
.
使用汇编路径$(Project)\bin\Debug\Example.dll
似乎也不是最优的 - 因为它要求构建以前已经成功 - 如果你有.tt文件ErrorGeneratingOutput
在.cs文件中生成" ",情况可能不是这样!
更新1:
所以我对此进行了第二次尝试,但这次尝试解决围绕"TransformOnBuild"的问题(作为旁注,我强烈推荐@ kzu的优秀项目:https://github.com/clariuslabs/TransformOnBuild)而没有$(SolutionDir)在没有直接从msbuild运行TextTransform时可用.无论如何 - 我想出了一个两步解决方案.
msbuild目标使用WriteLinesToFile任务根据csproj文件中的引用生成一个.tt文件,其中包含一个新的程序集指令列表.
项目中的任何其他.tt文件都可以包含自动生成的文件以获取已注册的项目程序集.
以下是目标的示例:
<Target Name="Write_AssemblyRefs_TT" BeforeTargets="TransformOnBuild">
<!-- A message for all to enjoy! -->
<WriteLinesToFile File="@(MyTextFile)"
Lines="<# /* AUTOGENERATED BY MSBUILD and Kern Herskind Nightingale */ #>"
Overwrite="true"
Encoding="Unicode" />
<!-- Output all assembly references with a HintPath -->
<WriteLinesToFile File="@(MyTextFile)"
Lines="<#@ assembly name="$(ProjectDir)%(Reference.HintPath)" #>"
Overwrite="false"
Encoding="Unicode"
Condition="'%(Reference.HintPath)' != ''" />
<!-- Output all …
Run Code Online (Sandbox Code Playgroud) 我想使用Open Xml SDK 2 生成一个包含Chart的Open XML文档.我找到了一个SpreadsheetML示例,但我无法弄清楚如何在.docx中添加图表...
Open Xml SDK 2的文档/示例是否有良好的来源?