这不是需要克服的问题,而是一个需要接受并围绕设计的限制。虽然令人烦恼,但在可预见的未来内不太可能发生改变。Windows Installer ProductVersions 基于三个部分。同时,请记住前两个部分不能超过255,但第三个部分最多可以达到65,535。
为什么要将.NET程序集版本直接映射到产品版本?您的产品中真的只有一个程序集吗?
我见过的大多数产品配置管理流程通常使用清单(也称为材料清单)来跟踪产品版本,列出了哪些二进制文件、配置文件和文档版本适用于该产品版本。这使您的开发流程与发布流程分离,这是一件好事,特别是对于商业产品而言。
.NET和Windows安装程序使用的版本涉及不同的问题。在.NET中,程序集版本由加载器用于确定要加载的程序集的版本。请记住,您可以将相同程序集的多个版本部署到GAC并使它们并排可用。您甚至可以拥有指定要加载的程序集的确切版本的策略。我可以在GAC中拥有程序集A的不同版本,并让应用程序1使用版本1,应用程序2使用版本2。虽然我对Windows安装程序了解不多,但我认为它使用版本和产品GUID来跟踪已安装的应用程序的版本,以便确定您正在安装的应用程序是否比已安装的应用程序更新,并警告用户或先卸载它或让用户选择。