电子商务公司起名,seo外包多少钱,如何打破违法网站,中国十大网络科技公司排名demo示例#xff1a;https://gitee.com/chenheze90/L28_AutoVSversion 可通过下载demo运行即可。 原理#xff1a;通过csproject项目文件中的Target标签#xff0c;实现在项目编译之前对项目版本号进行修改#xff0c;避免手动修改#xff1b;
1.基础版
效果图如下
部…demo示例https://gitee.com/chenheze90/L28_AutoVSversion 可通过下载demo运行即可。 原理通过csproject项目文件中的Target标签实现在项目编译之前对项目版本号进行修改避免手动修改
1.基础版
效果图如下
部分脚本如下
Project
PropertyGroupPreBuildEvent/PreBuildEvent/PropertyGroupTarget NameSetAssemblyVersion BeforeTargetsBeforeBuildPropertyGroupYear$([System.DateTime]::Now.ToString(yy))/YearMonthDay$([System.DateTime]::Now.ToString(MMdd))/MonthDay/PropertyGroupMessage TextSetting AssemblyVersion to 1.0.$(Year).$(MonthDay) Importancehigh /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines//using System.Reflection; Overwritetrue /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyTitle(quot;MyAPPTitlequot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyDescription(quot;2021.03.29quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyConfiguration(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCompany(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyProduct(quot;MyProquot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCopyright(quot;Copyright ? CCCquot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyTrademark(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCulture(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Runtime.InteropServices.ComVisible(false)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyVersion(quot;01.00.00$(Year).$(MonthDay)quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyFileVersion(quot;01.00.00$(Year).$(MonthDay)quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyInformationalVersion(quot;01.00.00$(Year).$(MonthDay)quot;)] Overwritefalse //Target
/Project2.进阶版
部分项目要自定义生成版本号可通过自定义类的方式来实现。 1.新建项目ClassLibrary1 2.引用系统类库sing Microsoft.Build.Framework;using Microsoft.Build.Utilities; 3.新建类GenerateVersionTask
public class GenerateVersionTask : Task{[Output]public int Version { get; set; }public override bool Execute(){// 生成版本号的逻辑Version GetVisitCount();return true;}private const string DataFilePath visit_counter.dat;public static int GetVisitCount(){// 读取存储的数据int visitCount 0; DateTime lastVisitDate DateTime.Now;ReadData(ref visitCount, ref lastVisitDate);// 获取当前日期DateTime today DateTime.Today;// 检查是否是新的一天if (lastVisitDate today){// 重置访问次数visitCount 0;lastVisitDate today;}// 增加访问次数visitCount;// 保存数据SaveData(visitCount, lastVisitDate);// 返回访问次数return visitCount;}private static void ReadData(ref int count, ref DateTime countdate){if (File.Exists(DataFilePath)){string[] lines File.ReadAllLines(DataFilePath);if (lines.Length 2){int visitCount int.Parse(lines[0]);DateTime lastVisitDate DateTime.Parse(lines[1]);count visitCount; countdate lastVisitDate;}}else{File.Create(DataFilePath);count 0; countdate DateTime.Now;}}private static void SaveData(int visitCount, DateTime lastVisitDate){string[] lines { visitCount.ToString(), lastVisitDate.ToString() };File.WriteAllLines(DataFilePath, lines);}}4.增加脚本
UsingTask TaskNameGenerateVersionTask AssemblyFile$(TargetDir)\ClassLibrary1.dll /和 GenerateVersionTaskOutput TaskParameterVersion PropertyNameMyVersion //GenerateVersionTask效果如图所示 UsingTask TaskNameGenerateVersionTask AssemblyFile$(TargetDir)\ClassLibrary1.dll /Target NameSetAssemblyVersion BeforeTargetsBeforeBuildPropertyGroupYear$([System.DateTime]::Now.ToString(yy))/YearMonthDay$([System.DateTime]::Now.ToString(MMdd))/MonthDay/PropertyGroupGenerateVersionTaskOutput TaskParameterVersion PropertyNameMyVersion //GenerateVersionTaskMessage TextGenerated Version: $(MyVersion) Importancehigh /Message TextSetting AssemblyVersion to 01.0$(MyVersion).00$(Year).$(MonthDay) Importancehigh /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines//using System.Reflection; Overwritetrue /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyTitle(quot;MyAPPTitlequot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyDescription(quot;2021.03.29quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyConfiguration(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCompany(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyProduct(quot;MyProquot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCopyright(quot;Copyright ? CCCquot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyTrademark(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyCulture(quot;quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Runtime.InteropServices.ComVisible(false)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyVersion(quot;01.0$(MyVersion).00$(Year).$(MonthDay)quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyFileVersion(quot;01.0$(MyVersion).00$(Year).$(MonthDay)quot;)] Overwritefalse /WriteLinesToFile File$(MSBuildThisFileDirectory)Properties\AssemblyInfo.cs Lines[assembly: System.Reflection.AssemblyInformationalVersion(quot;01.0$(MyVersion).00$(Year).$(MonthDay)quot;)] Overwritefalse //Target
/Project