我试图在.NET核心(2.0)控制台应用程序中指定程序集版本,以便我可以通过以下方式以编程方式访问它:
open System.Reflection
let main argv =
printfn "Assembly Version is: %s" <| Assembly.GetEntryAssembly().GetName().Version.ToString()
0
Run Code Online (Sandbox Code Playgroud)
将版本字段添加到我的.fsproj文件的属性组中,例如:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<Version>1.0.0.1</Version>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
不会更改我的测试应用程序打印的版本(它保持在0.0.0.0).
什么工作是添加AssemblyInfo.fs文件,其中设置AssemblyVersion属性,但如果可能的话我想避免这种情况并使用.fsproj文件.这可能吗?
我也很高兴有一个指针,指向我一般可以找到关于.fsproj的文档.
.fsproj文件我认为格式csproj与MSBuild 相同
你可以在这里找到关于csproj文件的官方文档:https://docs.microsoft.com/en-us/dotnet/core/tools/csproj
要获得程序集的"版本",您应该注意有几种类型的版本:
AssemblyVersion:
major.minor.build.revision格式的数字值(例如,2.4.0.0).公共语言运行库使用此值在强名称程序集中执行绑定操作.
注意:如果该AssemblyInformationalVersionAttribute属性不被施加到组件中,由指定的版本号AssemblyVersionAttribute属性由所使用的Application.ProductVersion,Application.UserAppDataPath和Application.UserAppDataRegistry特性.
AssemblyFileVersion:
指定Win32文件版本号的字符串值.这通常默认为汇编版本.
AssemblyInformationalVersion:
指定公共语言运行库未使用的版本信息的字符串值,例如完整产品版本号.
注意:如果将此属性应用于程序集,则可以在运行时使用该Application.ProductVersion属性获取指定的字符串.该字符串还用于Application.UserAppDataPath和Application.UserAppDataRegistry属性提供的路径和注册表项中.
Application.ProductVersion:
定义程序集清单的其他版本信息.
您可以在此处的官方Microsoft Docs中更详细地了解每个文档 - 或者您可以在此处阅读有关程序集的信息:
// assembly version
Assembly.GetExecutingAssembly().GetName().Version.ToString();
// assembly version - by path
Assembly.LoadFile('your assembly file').GetName().Version.ToString();
// file version **this is likely what you are seeking**
FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
// product version
FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion;
Run Code Online (Sandbox Code Playgroud)
请注意,上面的代码片段取自对类似SO问题的回答.
.fsproj直接解析文件还可以选择fsproj使用XML 解析文件.此选项用于以编程方式添加引用或仅检查文件 - 因此它可能不适用于您的问题,但它是为了完整答案.
//using System.Xml.Linq
XDocument.Load(path).Descendants("PropertyGroup").Elements("Version").Single().Value;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |