我正在寻找关于如何管理.NET程序集的三个不同程序集版本号的指针,建议甚至口述.产品版本是最简单的,因为这似乎通常由业务决定.然后,文件版本似乎用于部署之间的版本控制,其中实际的程序集版本仅在发货时使用.
现在我只是想找一个简单的方法来标记组件的测试和维护版本,而这些版本都没有依赖,因此我正在考虑在文件版本上自动递增构建和修订版本号,并且为了最终版本,复制当前版本文件版本到程序集版本.该产品正在生产中使用,但仍在开发中 - 您知道 - 其中一家小公司,没有变更控制基础设施的情况.
.net versioning version-control assemblyversions .net-assembly
基本上问题是每次程序集版本更改(即用户安装新版本的应用程序)时,所有设置都会重置默认值(或者更准确地说,在具有不同版本的文件夹中创建新的user.config文件)号码作为名称)
升级版本时如何保持相同的设置,因为似乎不鼓励使用ini文件或注册表?
当我们使用Clickonce它似乎能够处理这个,所以它似乎应该能够完成,但我不知道如何.
我有一个项目使用BinaryFormatter序列化字符串和bool的结构集合?数据类型.
序列化/反序列化工作正常,但是如果我要更改执行工作的程序集,则无法反序列化,因为二进制文件中的标头指示它需要Assembly x而不是Assembly y处理数据.
是否可以将序列化/反序列化设置为与程序集无关?
我想使用post-build事件自动创建一个nuget包,然后将其复制到我们网络上的共享文件夹,类似这样(版本号1.0.0.0.在MyLib.nuspec文件中指定):
nuget.exe pack "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib.1.0.0.0.nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)
这有效,但现在我想更新这个脚本,以便它也包括程序集版本,但我无法在构建后事件中获得程序集版本.我需要这样的东西:
nuget.exe pack -Version $(AssemblyVersion) "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib." + $(AssemblyVersion) + ".nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)
但是$(AssemblyVersion)变量不存在......有什么想法吗?
.net .net-4.0 visual-studio-2010 assemblyversions post-build-event
如果我有一个汇编版本,例如:
[assembly: AssemblyVersion("2013.7.18.*")]
Run Code Online (Sandbox Code Playgroud)
当读取此版本号时,它将是类似的2013.7.18.123.
是什么导致最终数字的增量?
我有两个C#项目的源代码.项目A启动项目B(process.Start();).从项目BI需要获得项目A的汇编版本.
为什么在 Visual Studio 中构建项目不会增加构建号?
我在 AssemblyInfo.cs 中有这个:
[assembly: AssemblyVersion("1.5.*")]
Run Code Online (Sandbox Code Playgroud)
...这在 frmAbout 的构造函数中:
Version versionInfo = Assembly.GetExecutingAssembly().GetName().Version;
String versionStr = String.Format("{0}.{1}.{2}.{3}", versionInfo.Major.ToString(), versionInfo.Minor.ToString(), versionInfo.Build.ToString(), versionInfo.Revision.ToString());
lblVersion.Text = String.Format("Version {0}", versionStr);
Run Code Online (Sandbox Code Playgroud)
然而,在对代码进行更改并构建项目后(右键单击项目名称 > 构建),versionInfo 的构建部分不会增加。“关于”框中的标签来自:
Version 1.5.5465.25383
Run Code Online (Sandbox Code Playgroud)
...到:
Version 1.5.5465.25999
Run Code Online (Sandbox Code Playgroud)
为什么内部版本号没有从 5465 增加到 5466?为什么“修订版”跳了 616 个档次?后者只是一个随机值,还是源中已更改的字节数,还是什么?
那么我怎样才能让内部版本号实际增加呢?
是的,razcor 是对的,因为这显示“5465”(今天,YMWV 在此之后的任何一天):
DateTime startDate = new DateTime(2000, 1, 1);
DateTime todaysDate = DateTime.Today;
int diffDays = (todaysDate.Date - startDate.Date).Days;
MessageBox.Show(diffDays.ToString());
Run Code Online (Sandbox Code Playgroud)
并且,知道构建号(例如 5465),可以计算和显示构建日期:
DateTime computedDate = startDate.AddDays(diffDays);
MessageBox.Show(computedDate.ToLongDateString()); // shows today's date (such as …Run Code Online (Sandbox Code Playgroud) versioning revision build-process assemblyversions assemblyversionattribute
使用 MSBuild 脚本如何从 AssemblyInfo.cs 中获取 AssmeblyVersion 和 FileVersion?
我正在为我的dot net dll设置汇编版本
Assmebly版本格式低于,
"major version.minor version.build number.revision"
我在下面设置Verison,
200.1.1.0;
Run Code Online (Sandbox Code Playgroud)
现在我的问题是我是否需要在次要版本,内部版本号和修订号中保留前导零(200.01.01.00) 或者不带前导零(200.1.1.0).这是正确的做法?是否有可用的Microsoft指南?我没有找到谷歌搜索的任何指导方针.
我有一个 C# 解决方案,包含单个项目和多个使用 .Net 6 的库。我使用传统提交(commitlint 和 husky),并希望使用语义发布将最新版本部署为基于提交的 Github 上的 ZIP 文件消息。
我为 C# 项目尝试过的设置:
。
npm install semantic-release -D
npm install @semantic-release/changelog -D
npm install @semantic-release/npm -D
npm install @semantic-release/github -D
npm install @semantic-release/git -D
Run Code Online (Sandbox Code Playgroud)
。
npm install semantic-release -D
npm install @semantic-release/changelog -D
npm install @semantic-release/npm -D
npm install @semantic-release/github -D
npm install @semantic-release/git -D
Run Code Online (Sandbox Code Playgroud)
version为0.0.0-development,将密钥设置private为true并添加存储库 url。
{
"plugins": …Run Code Online (Sandbox Code Playgroud) assemblyversions ×10
.net ×7
c# ×4
versioning ×3
.net-4.0 ×1
ipc ×1
msbuild ×1
revision ×1
settings ×1