C# 如何为每个项目程序集维护共享的AssemblyFileVersion和单独的AssemblyVersions?

C# 如何为每个项目程序集维护共享的AssemblyFileVersion和单独的AssemblyVersions?,c#,C#,我正在使用链接的AssemblyInfo.cs文件为所有类库设置AssemblyFileVersion [assembly: AssemblyFileVersion("6.60.3.4")] 我正在使用本地/默认AssemblyInfo.cs文件进行其他操作 //example of AssemblyVersion set in project AssemblyInfo.cs [assembly: AssemblyVersion("6.60.3.1")] 我的结果是AssemblyF

我正在使用链接的AssemblyInfo.cs文件为所有类库设置AssemblyFileVersion

[assembly: AssemblyFileVersion("6.60.3.4")]
我正在使用本地/默认AssemblyInfo.cs文件进行其他操作

//example of AssemblyVersion set in project AssemblyInfo.cs    
[assembly: AssemblyVersion("6.60.3.1")]
我的结果是AssemblyFileVersion和AssemblyVersion都设置为AssemblyFileVersion值

如何为每个项目程序集维护共享的AssemblyFileVersion和单独的AssemblyVersions

编辑


我的印象是,我可以/应该使用AssemblyFileVersion来跟踪项目中所有dll程序集的发布版本。我们的想法是让exe和DLL都具有相同的AssemblyFileVersion。只有在特定dll发生修改时,AssemblyVersion才会增加。这个逻辑对我来说是有道理的。请告知是否有更合理的方法来处理大型项目

据我所知,没有简单的解决方案。我认为最简单的解决方案是首先分别构建类库,然后让另一个构建依赖于此。通常,试图操纵AssemblyInfo文件中的值是徒劳的

你可以模仿TeamCity这样的系统。他们通过提取所有源代码,然后在实际构建之前使用web UI中提供的版本号编辑AssemblyInfo文件来完成此操作。

以下帖子建议您执行相反的操作


提供了一个可以根据您的需要进行调整的实现。

我的问题说得对,但我想知道我是否被误导了一点。我正在使用Windows文件属性对话框确认ProductVersion和FileVersion设置正确

我将以下内容添加到我的shared AssemblyInfo.cs文件中,它开始按照我的预期工作

[assembly: AssemblyVersion("6.60.0.0")]    
[assembly: AssemblyInformationalVersion("6.60.0.0")]
有没有想过为什么这会更新AssemblyVersion而不仅仅是这个

[assembly: AssemblyVersion("6.60.0.0")]

根据定义,您所引用的版本不再与特定程序集有关。我猜你指的是套件版本或类似的东西。添加程序集时会发生什么情况?它是第一版6.60.3.4吗?请参见上面的编辑。希望这能澄清我试图做的事情。@faldel当您查看dll或exe的属性时,那里显示的版本号将反映AssemblyInfo文件中的内容。生成时,AssemblyInfo版本会自动递增,因此,如果同时生成所有程序集,即使其中某些程序集没有代码更改,版本也会更新。您的帖子有助于我了解一些程序集如何使用AssemblyVersion和AssemblyFileVersion。@faldeland我很高兴这对您有所帮助。请随意投票并接受它。如果它不能回答您的问题,请让我知道需要添加或修复的内容。