小编her*_*duk的帖子

在T4中使用项目引用作为程序集路径

我有一个.tt脚本需要引用几个外部程序集.

T4主机是否可以自动包含项目中引用的程序集 - 而不是手动为每个程序集添加程序集指令?

例如,当使用相对于的路径时,从nuget引用程序集是一个移动目标$(ProjecDir).

使用汇编路径$(Project)\bin\Debug\Example.dll似乎也不是最优的 - 因为它要求构建以前已经成功 - 如果你有.tt文件ErrorGeneratingOutput在.cs文件中生成" ",情况可能不是这样!

更新1:

所以我对此进行了第二次尝试,但这次尝试解决围绕"TransformOnBuild"的问题(作为旁注,我强烈推荐@ kzu的优秀项目:https://github.com/clariuslabs/TransformOnBuild)而没有$(SolutionDir)在没有直接从msbuild运行TextTransform时可用.无论如何 - 我想出了一个两步解决方案.

  1. msbuild目标使用WriteLinesToFile任务根据csproj文件中的引用生成一个.tt文件,其中包含一个新的程序集指令列表.

  2. 项目中的任何其他.tt文件都可以包含自动生成的文件以获取已注册的项目程序集.

以下是目标的示例:

<Target Name="Write_AssemblyRefs_TT" BeforeTargets="TransformOnBuild">
  <!-- A message for all to enjoy! -->
  <WriteLinesToFile File="@(MyTextFile)" 
    Lines="&lt;# /* AUTOGENERATED BY MSBUILD and Kern Herskind Nightingale */ #&gt;" 
    Overwrite="true" 
    Encoding="Unicode" />
  <!-- Output all assembly references with a HintPath -->
  <WriteLinesToFile File="@(MyTextFile)" 
    Lines="&lt;#@ assembly name=&quot;$(ProjectDir)%(Reference.HintPath)&quot; #&gt;" 
    Overwrite="false"
    Encoding="Unicode"
    Condition="'%(Reference.HintPath)' != ''" />
  <!-- Output all …
Run Code Online (Sandbox Code Playgroud)

.net c# t4 auto-generate .net-assembly

13
推荐指数
1
解决办法
3189
查看次数

将图表添加到WordprocessingML

我想使用Open Xml SDK 2 生成一个包含Chart的Open XML文档.我找到了一个SpreadsheetML示例,但我无法弄清楚如何在.docx中添加图表...

Open Xml SDK 2的文档/示例是否有良好的来源?

.net ms-office openxml drawingml

8
推荐指数
1
解决办法
1303
查看次数

标签 统计

.net ×2

.net-assembly ×1

auto-generate ×1

c# ×1

drawingml ×1

ms-office ×1

openxml ×1

t4 ×1