我的解决方案中有三个项目:一个基础项目,以及一个引用基础的客户端和服务器。
我想做的是能够设置基础项目文件的程序集版本,并让它自动传播到服务器和客户端,这样它们的版本总是匹配的。理想情况下,这将是同步它们的预构建步骤。
有谁知道这是否可能或我将如何去做?
我们所做的与 Chris 的回答非常相似:
我们有一个名为 的项目ProductVersion
,其中“Product”实际上是产品名称。里面是一个名为的静态类VersionInformation
,其中包含常量字符串,其中包括一个名为的字符串ProductVersion
,这是我们实际设置版本信息的地方。
然后在每个项目的AssemblyInfo.cs
文件中,我们的AssemblyVersion
行如下所示:
[assembly: AssemblyVersion(Company.Product.VersionInformation.ProductVersion)]
在您的情况下,由于客户端和服务器都引用了基础项目,您可以在基础项目中包含类似的内容,而不是创建单独的项目。
将版本信息移动到解决方案根目录中的单独文件(例如 AssemblyVersion.cs)中。然后从每个项目的 AssemblyInfo.cs 文件中删除版本信息,并将共享的 AssemblyVersion 文件作为链接添加到每个项目中。