c#:Fluent Migrator / MigSharp / migratordotnet支持使用C#代码中的Application.ProductVersion进行版本编号?

我非常有兴趣使用其中一个产品进行迁移,但不仅仅是在数据库中,还包括文件系统等。 我最初的想法是,我想阅读Application.ProductVersion,但它返回一个字符串,但大多数迁移需要LONG或类似? 我不知道是否有人这样做,但我的想法是有2个不同版本的迁移。 1迁移产品,即更改目录,或文件系统中的东西等我将使用Application.ProductVersion 迁移数据库,我将使用我认为将来自一个字段的数据库的版本号? 有人用这种方式吗? 任何产品会支持这样的想法吗? 我的迁移并不总是特定于数据库,但有时特定于应用程序。 目前的工作方式似乎每个新版本都必须是一个整数,即1,2,3,4等...并且不考虑次要,修订等。 期待任何见解 谢谢     
已邀请:
MigratorDotNet不要求版本号是连续的(实际上,他们当前的建议是使用格式化为long的时间戳)。所以,如果你是确保主要版本永远不会包含两个以上的数字,次要版本将永远不会包含超过四个,并且内部版本号和修订版号将永远不会包含超过五位数,您可以将其组合成一个长整数。例如,2.34.1023.86将变为0200340102300086.如果您的下一个版本是2.42.0.2(0200420000000002),则迁移引擎将处理该问题。虽然感觉有点像黑客(虽然我喜欢它),但它应该可以创建一个单独的程序集,其中包含实际操作文件系统等的“迁移”。但是,您可能需要一个单独的数据库来包含MigratorDotNet用于跟踪应用版本的SchemaInfo表。类似的黑客攻击可能适用于其他迁移产品。     
在MigSharp中,您还可以选择使用long作为时间戳。因此,Aasmund的建议也适用于Mig#。在Mig#2.1版中,您可以选择完全自定义时间戳格式(只要您可以从中计算长整数)。 因此,如果在任何给定时刻(即数据库版本)存在文件系统和数据库模式应该如何定义的定义状态,那么您可以使用迁移框架并使迁移执行文件系统和/或数据库上所需的任何操作。如果您只想在一次迁移中更改文件系统,请执行此操作。在这种情况下,只会更新数据库以保存最新的迁移版本号。     

要回复问题请先登录注册