由于dotnet核心移回到.csproj格式,因此有一个新的自动生成MyProject.AssemblyInfo.cs,其中包含.
[assembly: AssemblyCompany("MyProject")]
[assembly: AssemblyVersion("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)
请注意,每次构建时都会自动重新生成.以前该文件位于/ obj /目录中,现在它似乎只在内存中,因为在磁盘上找不到该文件并且单击错误消息不会打开任何文件.
由于它们在那里定义,我无法在经典中定义它们AssemblyInfo.cs.
我在哪里/如何定义项目的公司和版本?
此问题与设置.NET Core项目的版本号非常相似,但不相同.在编写(1.1)和VS2017时,使用最新的稳定版.NET Core,.NET Core已从基于JSON的项目文件切换到CSPROJ文件.
所以 - 我想要做的是建立一个CI环境,我希望能够在构建之前修改某些内容,以使用正确的版本号标记我的构建.
如果我使用这样的属性旧(SharedAssemblyInfo.cs技巧):
[assembly: AssemblyFileVersion("3.3.3.3")]
[assembly: AssemblyVersion("4.4.4.4")]
Run Code Online (Sandbox Code Playgroud)
某处项目时,我得到的
CS0579 - Duplicate 'System.Reflection.AssemblyFileVersionAttribute'
和
CS0579 - Duplicate 'System.Reflection.AssemblyVersionAttribute'
错误的时候建设.
在深入挖掘它时,我发现在构建过程中有一个看起来像这样的文件(在构建之前它不存在)\obj\Debug\netcoreapp1.1:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("TestApplication")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("Package Description")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.1.99.0")] …Run Code Online (Sandbox Code Playgroud) 我正在尝试自动化为所有DLL设置版本的过程,花了一些时间后我才开始了解AssemblyInfo最有可能实现的任务.
所以我继续安装它,特别是版本1.0.51130.0.
安装后,我手动添加的Import标签(通过卸载每个项目)的AssemblyInfoTask在.cspoj文件(该溶液具有大于35个PROJ文件).
<Import Project="$(MSBuildExtensionsPath)\Microsoft\AssemblyInfoTask\Microsoft.VersionNumber.Targets"/>
Run Code Online (Sandbox Code Playgroud)
接下来我修改了Microsoft.VersionNUmber.Target将在path:中安装的文件C:\Program Files\MSBuild\Microsoft\AssemblyInfoTask,并修改了以下部分:
<!-- Properties for controlling the Assembly Version -->
<PropertyGroup>
<AssemblyMajorVersion>4</AssemblyMajorVersion>
<AssemblyMinorVersion>0</AssemblyMinorVersion>
<AssemblyBuildNumber></AssemblyBuildNumber>
<AssemblyRevision></AssemblyRevision>
<AssemblyBuildNumberType>DateString</AssemblyBuildNumberType>
<AssemblyBuildNumberFormat>01MMdd</AssemblyBuildNumberFormat>
<AssemblyRevisionType>AutoIncrement</AssemblyRevisionType>
<AssemblyRevisionFormat>00</AssemblyRevisionFormat>
</PropertyGroup>
<!-- Properties for controlling the Assembly File Version -->
<PropertyGroup>
<AssemblyFileMajorVersion>4</AssemblyFileMajorVersion>
<AssemblyFileMinorVersion>0</AssemblyFileMinorVersion>
<AssemblyFileBuildNumber></AssemblyFileBuildNumber>
<AssemblyFileRevision></AssemblyFileRevision>
<AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType>
<AssemblyFileBuildNumberFormat>01MMdd</AssemblyFileBuildNumberFormat>
<AssemblyFileRevisionType>AutoIncrement</AssemblyFileRevisionType>
<AssemblyFileRevisionFormat>00</AssemblyFileRevisionFormat>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
接下来,我将assemblyInfo.cs文件的版本设置1.0.0.0为每个项目.最后我保存并关闭它,重新打开解决方案并构建.它就像一个冠军!
现在什么要的是定制版本来4.0.1053.1这里10是今年指标是2010年的部分53代表周数,最后1表示版本号.
如何使用AssemblyInfoTask 实现这一目标?我发现了几个帖子,AssemblyInfo在Build Extension Pack中可以使用新版本的Task. …
以前版本的ASP.NET允许您通过"项目属性"自动增加版本号.我怎么能在MVC 6中这样做?
我的 C# 多项目解决方案在使用 VS2019 profesional 16.5.5 和 16.5.4 时遇到问题。它正确地编译、测试和执行,但在后台我不断恢复 nuget 包,每隔几秒钟完成一次。CPU 接近 100%。
我已经尝试过Update-Package -reinstall,nuget locals all --clear(来自: 如何在 Visual Studio 2017 中修复此 NuGet Restart 循环?),更新 VS,删除我的.vs文件夹,清理解决方案,再次从 git 检出项目,甚至重新启动。似乎没有任何帮助。
该项目有几个主要项目:两个控制台,一个 AspNetCore,一个 WPF。它们使用标准 2.0 或共享 C# 项目中的公共库。
输出窗口中的包管理器日志有数百个条目,例如:
Time Elapsed: 00:00:00.7441577
========== Finished ==========
Time Elapsed: 00:00:00.8448774
========== Finished ==========
Time Elapsed: 00:00:00.8410551
========== Finished ==========
Time Elapsed: 00:00:00.7351174
========== Finished ==========
Time Elapsed: 00:00:00.7997720
========== Finished ==========
Time Elapsed: 00:00:00.9367757
========== Finished ========== …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.NET Core开发REST API,并希望版本号自动递增.这曾经很容易通过AssemblyInfo文件中的以下模式:[assembly:AssemblyVersion("1.6.*")].
我已经阅读了一些使用gulp或其他第三方工具来完成此任务的建议,就像这里的答案一样
但我真的需要第三方工具才能自动增加版本号吗?是否已不再支持内置功能?感觉我在这里遗漏了一些东西.
在旧的 .NET 框架中,您可以设置[assembly: AssemblyVersion("1.0.*")]并且编译器会自动增加版本。
使用 .NET 核心,我尝试了各种方法,但无法让它自动递增。
<Deterministic>False</Deterministic>和。代码编译但版本保持不变<AssemblyVersion>1.0.*</AssemblyVersion><Version>1.0.*</Version>标记。这实际上将产品版本设置为 1.0.*(带星号)。它似乎都不起作用。我错过了一些简单的东西吗?这只是一个标准的 .NET Core Web 项目。
.net-core ×4
asp.net-core ×4
c# ×2
versioning ×2
.net ×1
assemblyinfo ×1
msbuild ×1
msbuild-task ×1
nuget ×1