在C#的每一个工程都有一个AssemblyInfo.cs文件,里边包含对版本号的控制,主要是
[assembly: AssemblyVersion("1.0.*")]这一行,你可以按需求修改,默认情况下是自动加1的。

解决方案 »

  1.   

    主程序集使用版本控制来确定是否加载资源。每一主程序集都具有 SatelliteContractVersionAttribute 类,该类确定哪些附属程序集将与主程序集一起使用。对于可供使用的已本地化的资源,主程序集的附属合同版本必须匹配您的附属程序集的 AssemblyVersionAttribute 类。您必须在 SatelliteContractVersionAttribute 中指定确切版本号;不允许使用像“*”这样的通配符。SatelliteContractVersionAttribute 类使您可以不必更新附属程序集就更新主程序集,反之亦然。当更新主程序集时,其程序集版本号发生更改。如果想要继续使用现有附属程序集,则更改主程序集的版本号,但保持附属合同版本号不变。例如,在您的第一版中,主程序集版本可以是 1.0.0.0。附属合同版本和附属程序集的程序集版本也将是 1.0.0.0。如果您需要为 Service Pack 更新主程序集,则可以将程序集版本更改为 1.0.0.1,而将附属合同版本和附属程序集的程序集版本保持为 1.0.0.0。如果您需要更新附属程序集而不是主程序集,则可以更改该附属程序集的 AssemblyVersionAttribute。您还必须将策略程序集与附属程序集一起提供,策略程序集指示新的附属程序集与旧的附属程序集兼容。有关这些策略的更多信息,请参阅运行库如何定位程序集。下面的代码说明如何设置附属合同版本。该代码可以放置在生成脚本中,或者 AssemblyInfo.vb 或 AssemblyInfo.cs 文件中。' Visual Basic
    <Assembly: SatelliteContractVersionAttribute("4.3.2.1")>// C#
    [assembly: SatelliteContractVersionAttribute("4.3.2.1")]
      

  2.   

    时间和版本号没有任何关系,.net中版本号构成[主版本号,次版本号,修改次数,编译次数]
    其中你每编译一次,最后一节会自动增加......
      

  3.   

    .Net中这个版本号是这样定义的:major.minor.build.revision一般major.minor都是你自己定义的,比如1.1,1.2后面两个也可以自己指定,比如1.1.1.1,但是一般都不这么做,因为它还有一些隐含的含义。
    比如,在AssemblyInfo.cs文件中,你可以看到下面这样一行来定义了版本。
    [assembly: AssemblyVersion("1.0.*")]当后面加*号的时候,表示用系统指定的含义(编译器来控制)。
    build 等于自当地时间 2000 年 1 月 1 日以来的天数
    revision等于自当地时间午夜以来的秒数/2