适用于.NET 5、.NET 6的程序集版本的经典或自定义内部版本和版本号 |
您所在的位置:网站首页 › 文件版本的定义 › 适用于.NET 5、.NET 6的程序集版本的经典或自定义内部版本和版本号 |
目录 介绍 在.NET Framework 5中创建自动生成和版本号 选项 问题 介绍.NET 5和.NET 6没有默认的生成和版本号选项,如.NET Framework中所示。 版本号存在于 AssemblyInfo.cs 文件中的“属性”目录中,如下所示: // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyFileVersion("1.0.0.0")] // when commented out it uses the assembly version这会将星号替换为内部版本号和修订号;结果类似于1.0.8306.30708,其中最后两个数字是: 内部版本号,等于自当地时间2000年1月1日以来的天数,以及修订号等于自当地时间午夜以来的秒数(不考虑夏令时的时区调整),除以2这转换成2022年9月28日17:03编译的软件。 程序集文件中经典生成和修订代码的完整说明可以在 Microsoft的页面上找到。 在.NET Framework 5中创建自动生成和版本号诀窍是使用MSBuild内联任务来设置生成和版本号。更多信息可以在Micosofts的页面上找到。 需要执行以下步骤: 要添加AssemblyVersion,必须将其添加到PropertyGroup中。必须设置事件BeforeBuild。必须使用标准C#代码创建UsingTask。代码如下所示: // add the property "AssemblyVersion" to the propertyGroup: 1.0.0.0 // more properties here..... // add the pre-build event, named BeforeBuild in .NET Core: // and the task creating the AssemblyVersion 选项此示例将创建一个经典版本号,但使用C#代码创建生成和版本(实际上是整个程序集版本号)的选项提供了创建所需任何格式的选项。 问题虽然这适用于编译和运行软件,但它不适用于编译的软件,其中应用程序打包到一个包含所有依赖项的文件中。 以下示例将失败: dotnet publish $(SolutionDir)MyProject\MyProject.csproj -p:PublishProfile=FolderProfile -r:win10-x64 -p:PublishSingleFile=true -p:PublishReadyToRun=false -p:PublishTrimmed=false -c:Release -o:$(TargetDir)published这将导致以下错误: 任务工厂“CodeTaskFactory”在MSBuild的.NET Core版本上不受支持。 和: 无法从程序集“C:\Program Files\dotnet\sdk\6.0.400\Microsoft.Build.Tasks.Core.dll”加载任务工厂“CodeTaskFactory”。任务工厂必须返回“任务类型”属性的值。 由于这些问题对我并不重要,我没有进一步调查它们。 https://www.codeproject.com/Tips/5343784/Classic-or-Custom-Build-and-Version-Numbers-for-As |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |