在嵌入式 JavaScript 中插入 AssemblyInfo(例如 DLL 版本号)
Insert AssemblyInfo (e.g. DLL versionno) in embedded JavaScript
我的 C# dll 有一个嵌入式 Javascript 文件。在此文件的 header 中,我想包含版本信息。是否可以在JS文件中插入DLL AssemblyInfo(如dll版本)?
如果没有你的代码,我无法知道你对那个 JS 文件做了什么,但这里有一个想法:
- 将JS文件内容读入字符串
- 用您需要的 DLL AssemblyInfo 值替换该字符串中的一些标记
- 评估字符串或将其保存到临时文件(取决于您需要它做什么)
也许您可以按照与此类似的方式使用 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
并从那里阅读版本来找到这样做的方法。
所以虽然这个建议不是完美的,但它可能会给你一个起点。
我的 C# dll 有一个嵌入式 Javascript 文件。在此文件的 header 中,我想包含版本信息。是否可以在JS文件中插入DLL AssemblyInfo(如dll版本)?
如果没有你的代码,我无法知道你对那个 JS 文件做了什么,但这里有一个想法:
- 将JS文件内容读入字符串
- 用您需要的 DLL AssemblyInfo 值替换该字符串中的一些标记
- 评估字符串或将其保存到临时文件(取决于您需要它做什么)
也许您可以按照与此类似的方式使用 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
并从那里阅读版本来找到这样做的方法。
所以虽然这个建议不是完美的,但它可能会给你一个起点。