【发布时间】:2026-02-16 06:55:01
【问题描述】:
在遵循here 的指导后,我实施了一个专为dynamical update assembly copyright 设计的预构建过程。
版权的模板是
<#@ template language="C#" #>
<#@ output extension=".cs" #>
using System;
using System.Reflection;
[assembly: AssemblyCopyright("Copyright © <#=DateTime.Now.Year#>")]
如果我将文件保存在 VS 中,生成的文件(和编译的程序集)正确地包含版权符号 (©)。当作为预构建调用 TextTransform.exe(在本例中为 v12.0)的一部分完成时,生成的文件包含“?”反而。指定 encoding="us-ascii" 时,我得到相同的结果当编码设置为任何 utf 变体时,它会显示为“�”。修改模板以使用 \u00A9 会在编译程序集时得到相同的结果。
我知道我可以合并code generation in the solution build process,但这增加了新员工(和新环境设置;我们在 VM 中进行大量开发)的负担,以确保安装适当的 SDK。它还需要使用模板对每个项目进行人工干预(我们小组在一年内完成了许多不同的项目,其中许多项目需要多年的持续维护)。该过程还强制重新生成每个构建(预构建事件生成到临时文件并在尝试覆盖之前比较差异)。最后,这条路径的结果似乎与预构建事件相同。
我还缺少哪些其他选项?
【问题讨论】:
标签: visual-studio templates t4 pre-build-event