标签: assemblyversions

维护程序集版本号的最佳实践/指导

我正在寻找关于如何管理.NET程序集的三个不同程序集版本号的指针,建议甚至口述.产品版本是最简单的,因为这似乎通常由业务决定.然后,文件版本似乎用于部署之间的版本控制,其中实际的程序集版本仅在发货时使用.

现在我只是想找一个简单的方法来标记组件的测试和维护版本,而这些版本都没有依赖,因此我正在考虑在文件版本上自动递增构建和修订版本号,并且为了最终版本,复制当前版本文件版本到程序集版本.该产品正在生产中使用,但仍在开发中 - 您知道 - 其中一家小公司,没有变更控制基础设施的情况.

.net versioning version-control assemblyversions .net-assembly

151
推荐指数
4
解决办法
5万
查看次数

如何在.net中的不同程序集版本中保留user.config设置?

基本上问题是每次程序集版本更改(即用户安装新版本的应用程序)时,所有设置都会重置默认值(或者更准确地说,在具有不同版本的文件夹中创建新的user.config文件)号码作为名称)

升级版本时如何保持相同的设置,因为似乎不鼓励使用ini文件或注册表?

当我们使用Clickonce它似乎能够处理这个,所以它似乎应该能够完成,但我不知道如何.

.net settings assemblyversions

134
推荐指数
2
解决办法
3万
查看次数

具有不同汇编版本的二进制反序列化

我有一个项目使用BinaryFormatter序列化字符串和bool的结构集合?数据类型.

序列化/反序列化工作正常,但是如果我要更改执行工作的程序集,则无法反序列化,因为二进制文件中的标头指示它需要Assembly x而不是Assembly y处理数据.

是否可以将序列化/反序列化设置为与程序集无关?

.net serialization binaryformatter assemblyversions

26
推荐指数
3
解决办法
2万
查看次数

如何在构建后事件中获取版本号

我想使用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

13
推荐指数
1
解决办法
8984
查看次数

使用星号时导致Assembly Version递增的原因是什么?

如果我有一个汇编版本,例如:

[assembly: AssemblyVersion("2013.7.18.*")]
Run Code Online (Sandbox Code Playgroud)

当读取此版本号时,它将是类似的2013.7.18.123.

是什么导致最终数字的增量?

.net c# assemblyversions .net-assembly

9
推荐指数
1
解决办法
2932
查看次数

获取另一个项目的汇编版本(.exe)

我有两个C#项目的源代码.项目A启动项目B(process.Start();).从项目BI需要获得项目A的汇编版本.

c# ipc assemblyversions

6
推荐指数
1
解决办法
4009
查看次数

如何让 Visual Studio 项目的内部版本号递增?

为什么在 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

5
推荐指数
1
解决办法
3152
查看次数

MSBuild:如何从 AssmeblyInfo.cs 读取程序集版本和文件版本?

使用 MSBuild 脚本如何从 AssemblyInfo.cs 中获取 AssmeblyVersion 和 FileVersion?

msbuild assemblyversions visual-studio

3
推荐指数
1
解决办法
2971
查看次数

在C#汇编版本中使用前导零是否合适?

我正在为我的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指南?我没有找到谷歌搜索的任何指导方针.

.net c# versioning assemblyversions .net-assembly

2
推荐指数
1
解决办法
869
查看次数

是否可以使用语义发布来自动化 .Net 程序集版本控制?

我有一个 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)
  • 在根目录中创建.releaserc.json文件

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)
  • 在package.json文件内将密钥设置version0.0.0-development,将密钥设置privatetrue并添加存储库 url
  • 工作流目录中创建release-on-push-on-main-branch.yml文件

{
  "plugins": …
Run Code Online (Sandbox Code Playgroud)

.net c# assemblyversions semantic-release github-actions

2
推荐指数
1
解决办法
2147
查看次数