在嵌入式 JavaScript 中插入 AssemblyInfo(例如 DLL 版本号)

Insert AssemblyInfo (e.g. DLL versionno) in embedded JavaScript

我的 C# dll 有一个嵌入式 Javascript 文件。在此文件的 header 中,我想包含版本信息。是否可以在JS文件中插入DLL AssemblyInfo(如dll版本)?

如果没有你的代码,我无法知道你对那个 JS 文件做了什么,但这里有一个想法:

  1. 将JS文件内容读入字符串
  2. 用您需要的 DLL AssemblyInfo 值替换该字符串中的一些标记
  3. 评估字符串或将其保存到临时文件(取决于您需要它做什么)

也许您可以按照与此类似的方式使用 T4 模板引擎。 这将例如将 someFile.tt 翻译成 someFile.js:

<#@ output extension=".js" encoding="utf-8" #>
// This file was created at <#= DateTime.Now #>
// It's version is <#= System.Reflection.Assembly.GetExecutingAssembly().GetName().Version #>

function foo() {
    console.log("bar");
}

遗憾的是,此代码段无法为您解决问题。它至少有两个缺陷:

  • 不会在每次构建时执行。也许看看 this answer 找到解决方法。
  • 不将您的 项目的程序集版本插入到输出中。您必须通过找到您的 AssemblyInfo.cs 并从那里阅读版本来找到这样做的方法。

所以虽然这个建议不是完美的,但它可能会给你一个起点。