В свойстве MSI ProductVersion важны только первые 3 поля при сравнении версий с использованием логики основного обновления. Так что в вашем случае MSI будет считать 1.0.0.1 и 1.0.0.0 обоими 1.0.0. Поэтому FindRelatedProducts не будет определять эту ситуацию как обновление.
Способ, которым я подхожу к этому, заключается в создании «упакованной» версии, в которой 3-е и 4-е поля объединяются в одно, скажем, (4096 * f3 + f4), но это позволит вам никогда не иметь 4-го поля (сборка число) больше 4096 и 3-е поле не больше 15, так как 0xFFFF является максимумом для поля версии.
Это позволяет нам выполнять крупные обновления между отдельными ночными сборками, а не только пакетами обновлений, без необходимости в загрузчике для незначительного обновления, и мы можем иметь новый код продукта для каждой сборки, поэтому нет необходимости запоминать обновления это вручную, когда возникает необходимость.