我正在尝试获取Asp.Net Core 2 MVC项目的Version属性的文本(2018.09.06
,该文本在项目的选项对话框中捕获:
该值包含在项目的ReleaseVersion
文件的.csproj
元素中:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RootNamespace>Project Foo</RootNamespace>
<ReleaseVersion>2018.09.06</ReleaseVersion>
<UserSecretsId>[GUID here]</UserSecretsId>
</PropertyGroup>
...
</Project>
我已经尝试过了:
var version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
但是它返回1.0.0.0
。
我正在使用.Net Core 2.0 Framework。
注意:Display project version in ASP.NET MVC Core application (RC2)的答案无效。
答案 0 :(得分:0)
我在项目的/PropertyGroup/VersionPrefix
文件中添加了.csproj
元素:
<PropertyGroup>
<VersionPrefix>1.19.2</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>
然后获取值:
string Version = System.Reflection.Assembly.GetEntryAssembly().GetCustomAttribute<System.Reflection.AssemblyInformationalVersionAttribute>().InformationalVersion.ToString()
据我所知,该值不能通过项目的选项UI设置。
老实说,我很困惑为什么有一个UI不能使用API来访问单独的版本号(在我的问题中引用的版本)。
答案 1 :(得分:0)
请参阅:https://github.com/dotnet/core/issues/2700#issuecomment-491025782
将Directory.Build.props
文件添加到解决方案文件夹中,然后在其中而不是通过UI来管理版本。
<Project>
<PropertyGroup>
<VersionPrefix>1.19.2</VersionPrefix>
</PropertyGroup>
</Project>
我倾向于认为VS工具应该对此更好,但是只要我只有一个地方来管理此值,这就是对替代方法的一项重大改进。