asp.net-core – 设置.NET Core项目的版本号
|
使用.NET Core / ASP.NET Core项目设置项目版本的选项有哪些? 发现到目前为止 >在project.json中设置version属性。来源:DNX Overview,Working with DNX projects.这似乎设置了AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion,除非被属性覆盖(见下一个点)。 例如,在project.json中包含’version’:’4.1.1- *’,并在.cs文件中设置[assembly:AssemblyFileVersion(“4.3.5.0”)]将导致AssemblyVersion = 4.1.1.0,AssemblyInformationalVersion = 4.1 .1.0和AssemblyFileVersion = 4.3.5.0 通过属性设置版本号,例如AssemblyFileVersion,仍然支持? 我错过了什么 – 还有其他方法吗? 上下文 我正在寻找的方案是在多个相关项目之间共享单个版本号。一些项目使用.NET Core(project.json),其他项目使用完整的.NET Framework(.csproj)。所有这些都在逻辑上是单个系统的一部分,并且一起版本化。 到目前为止,我们使用的策略是使用AssemblyVersion和AssemblyFileVersion属性在我们的解决方案的根目录下有一个SharedAssemblyInfo.cs文件。这些项目包括一个指向该文件的链接。 我正在寻找方法来实现与.NET Core项目相同的结果,即要修改单个文件。 解决方法为什么不更改project.json文件中的值。使用 CakeBuild可以做这样的事情(优化可能)Task("Bump").Does(() => {
var files = GetFiles(config.SrcDir + "**/project.json");
foreach(var file in files)
{
Information("Processing: {0}",file);
var path = file.ToString();
var trg = new StringBuilder();
var regExVersion = new System.Text.RegularExpressions.Regex(""version":(s)?"0.0.0-*",");
using (var src = System.IO.File.OpenRead(path))
{
using (var reader = new StreamReader(src))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
if(line == null)
continue;
line = regExVersion.Replace(line,string.Format(""version": "{0}",",config.SemVer));
trg.AppendLine(line);
}
}
}
System.IO.File.WriteAllText(path,trg.ToString());
}
});
那么如果你有一个依赖项目的UnitTest项目,使用“*”进行依赖解析。 另外,做dotnet还原之前做碰撞。我的订单如下所示: Task("Default")
.IsDependentOn("InitOutDir")
.IsDependentOn("Bump")
.IsDependentOn("Restore")
.IsDependentOn("Build")
.IsDependentOn("UnitTest");
Task("CI")
.IsDependentOn("Default")
.IsDependentOn("Pack");
链接到完整版脚本:https://github.com/danielwertheim/Ensure.That/blob/3a278f05d940d9994f0fde9266c6f2c41900a884/build.cake 实际值,例如该版本来自于在构建脚本中导入单独的build.config文件: #load "./buildconfig.cake" var config = BuildConfig.Create(Context,BuildSystem); 配置文件看起来像这样(从https://github.com/danielwertheim/Ensure.That/blob/3a278f05d940d9994f0fde9266c6f2c41900a884/buildconfig.cake开始): public class BuildConfig
{
private const string Version = "5.0.0";
public readonly string SrcDir = "./src/";
public readonly string OutDir = "./build/";
public string Target { get; private set; }
public string Branch { get; private set; }
public string SemVer { get; private set; }
public string BuildProfile { get; private set; }
public bool IsTeamCityBuild { get; private set; }
public static BuildConfig Create(
ICakeContext context,BuildSystem buildSystem)
{
if (context == null)
throw new ArgumentNullException("context");
var target = context.Argument("target","Default");
var branch = context.Argument("branch",string.Empty);
var branchIsRelease = branch.ToLower() == "release";
var buildRevision = context.Argument("buildrevision","0");
return new BuildConfig
{
Target = target,Branch = branch,SemVer = Version + (branchIsRelease ? string.Empty : "-b" + buildRevision),BuildProfile = context.Argument("configuration","Release"),IsTeamCityBuild = buildSystem.TeamCity.IsRunningOnTeamCity
};
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 无法加载文件或程序集’Microsoft.Office.Inter
- asp.net-core – 外部包中的模型显示在swagger文档中
- asp.net – MVC4上的_layout.cshtml的@model?
- asp.net-mvc – 疑难解答反伪造令牌问题
- ASP.NET Core 2.0和Angular 4.3文件上传进度
- asp.net – WCF中的405方法不允许错误
- asp.net-mvc – MVC5 Microsoft.CSharp.RuntimeBinder.Runt
- 使用Ninject绑定WebApi过滤器属性
- asp.net-mvc – 如何在ASP.NET MVC中使用querystring路由UR
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅仅是小数
- 无法找到asp.net-mvc – System.Data.Entity.Dat
- asp.net-mvc-4 – 在一个项目中混合Web Api和ASP
- 在ASP.NET中如何检测上传文件的MIME类型?
- asp.net-mvc – ASP.NET MVC:Action中的授权 –
- asp.net-mvc – HttpContext.Items与ASP.NET MVC
- asp.net-mvc – MVC 4从基本路由中删除“home”
- asp.net-mvc – 怎么样?控制器返回任何/当前视图
- ASP.NET Razor查看Html.TextBox大小/宽度
- asp.net-mvc – 什么是ASP.Net MVC?
- asp.net-core – 为什么我的JWT承载认证在令牌表
