Roh*_*rma 7 .net c# version .net-core
我正在使用从当前日期/时间生成版本号的 Roslyn 功能。
我可以看到自动生成的基于日期/时间的版本号被正确标记为 AssemblyVersion,我可以在运行时使用 API 读取它。
问题:如何获得标记为文件版本的相同自动生成的基于日期时间的版本号,以便我可以右键单击 Windows 资源管理器中的程序集并查看“详细信息”选项卡下的“文件版本”
我看到当我明确标记版本号(比如 1.2.3.4)时它工作正常,但不是自动生成的
我没有使用 AssemblyInfo.cs 并希望在 .csproj 中设置属性
我正在使用 dotnet cli 使用以下 csproj 进行构建,例如:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<AssemblyVersion>1.0.*</AssemblyVersion>
<FileVersion>1.0.*</FileVersion>
<Deterministic>false</Deterministic>
<PackageId>Demo</PackageId>
<Company>My Company</Company>
<Copyright>Copyright © Xyzzy 2020</Copyright>
<Description>Description</Description>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<GenerateAssemblyFileVersionAttribute>true</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyTitleAttribute>true</GenerateAssemblyTitleAttribute>
<GenerateAssemblyConfigurationAttribute>true</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>true</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>
<GenerateAssemblyCopyrightAttribute>true</GenerateAssemblyCopyrightAttribute>
<GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute>true</GenerateAssemblyInformationalVersionAttribute>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
根据Microsoft.NET.GenerateAssemblyInfo.targets项目,如果您不指定FileVersion属性并设置GenerateAssemblyFileVersionAttribute为,false则FileVersion属性值将等于AssemblyVersion属性。
尝试像这样修改您的 csproj 文件:
\n\n<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">\n <PropertyGroup>\n <OutputType>WinExe</OutputType>\n <TargetFramework>netcoreapp3.1</TargetFramework>\n <UseWindowsForms>true</UseWindowsForms>\n\n <AssemblyVersion>1.0.*</AssemblyVersion>\n\n <!-- Comment or delete this line. -->\n <!-- <FileVersion>1.0.*</FileVersion> -->\n\n <Deterministic>false</Deterministic>\n <PackageId>Demo</PackageId>\n <Company>My Company</Company>\n <Copyright>Copyright \xc2\xa9 Xyzzy 2020</Copyright>\n <Description>Description</Description>\n <GeneratePackageOnBuild>true</GeneratePackageOnBuild>\n <GenerateAssemblyInfo>true</GenerateAssemblyInfo>\n\n <!-- Set this attribute to false. -->\n <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>\n\n <GenerateAssemblyTitleAttribute>true</GenerateAssemblyTitleAttribute>\n <GenerateAssemblyConfigurationAttribute>true</GenerateAssemblyConfigurationAttribute>\n <GenerateAssemblyCompanyAttribute>true</GenerateAssemblyCompanyAttribute>\n <GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>\n <GenerateAssemblyCopyrightAttribute>true</GenerateAssemblyCopyrightAttribute>\n <GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>\n <GenerateAssemblyInformationalVersionAttribute>true</GenerateAssemblyInformationalVersionAttribute>\n </PropertyGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n\n这种方法对我有用。对 csproj 文件进行上述更改后,我可以FileVersion在文件属性窗口中看到。
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |