我的解决方案基本上包含10个csproj文件
我想对每个版本进行版本控制,然后在某个页面上的我的应用程序(asp netcore mvc)中显示它。它会列出所有csproj名称及其版本(可以由应用或其他方式生成)
例如
服务2019.05.01
我考虑过要在.csproj中制作public static Dictionary<string, string>
,而其他所有csproj都在“ csproj入口点”之类的东西上进行引用,它将执行.Add("name of csproj", "some version based on data")
有人有更好的主意如何实现这样的目标吗?
答案 0 :(得分:0)
原始答案:https://stackoverflow.com/a/50607951/10522960
备份:
对于.NET Core项目,我改编了Postlagerkarte的答案以使用生成日期更新程序集版权字段。
以下内容可以直接添加到csproj中的第一个PropertyGroup
:
<Copyright>Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))</Copyright>
或将内部表达式直接粘贴到Visual Studio中项目属性的“包”部分的“版权”字段中:
Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))
这可能有点令人困惑,因为Visual Studio会评估表达式并在窗口中显示当前值,但也会在幕后适当地更新项目文件。
您可以将上面的<Copyright>
元素放入解决方案根目录下的Directory.Build.props
文件中,并假设每个项目没有提供自己的版权值,则将其自动应用于目录中的所有项目。
<Project>
<PropertyGroup>
<Copyright>Copyright © $([System.DateTime]::UtcNow.Year) Travis Troyer ($([System.DateTime]::UtcNow.ToString("s")))</Copyright>
</PropertyGroup>
</Project>
Directory.Build.props:Customize your build
该示例表达式将为您提供这样的版权:
Copyright © 2018 Travis Troyer (2018-05-30T14:46:23)
您可以在Windows的文件属性中查看版权信息,或在运行时获取版权信息:
var version = FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location);
Console.WriteLine(version.LegalCopyright);