2016-08-11 9 views
0

ClickOnceを使用して配備や更新を管理している場合、URL /マニフェストにプロジェクトの最新バージョンを積極的に照会し、更新を行う必要があるかどうかを判断します。比較ルーチンの数値制限は何ですか?ビルドを自動化するプロセスがあるので、バージョンの4つのコンポーネント(たとえば、1.0.0.x;シンボルなしの数字)にタイムスタンプをドロップします。しかし、私はこの場所に8桁の数字があることが潜在的に比較をクラッシュさせる可能性があると懸念しています。マイクロソフトでは予期せぬ要件でうまく対応していません。.NET:ClickOnceでのバージョン番号の文字列の長さと長さ

誰もこの経験がありますか?

ありがとうございました。

+0

「System.Version」を使用して値を解析して比較するように見えるので、アプリケーションが「int.MaxValue」に制限されているようです。 – vcsjones

答えて

1

トレイルを歩こう。大きい番号で接続を開始すると、最終的にsetup.exeが最新バージョンをポーリングして「続行できません。アプリケーションが不適切な形式になっています。

ClickOnce version fail

あなたは細部を見れば、あなたは以下の言うかもしれログ表示されます:あなたはGoogleの「fourPartVersionType」のために、あなたはFourPartVersionType Simple Typeで自分自身を見つける場合

+ The 'version' attribute is invalid - The value '1.0.0.161739' is invalid according to its datatype 'urn:schemas-microsoft-com:asm.v1:fourPartVersionType' - The Pattern constraint failed. 
+ The Pattern constraint failed. 

([0-9]{1,4}|[0-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(\.([0-9]{1,4}|[0-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){3} 

これは基本的に各コンポーネントを4桁または5桁に制限しており、essentiall yであり、後者では65536を超えない。

+0

それで十分でしょうか?正直なところ、改訂版/マイナー版を時折増やすことに対して何が語られていますか? 65536ビルドが十分以上です – lokusking

+0

コミットごとにインクリメントしていない場合は確かです。それでも、増加する数を維持できるような永続性の方法が必要です。それに対処できない場合(このような状況のように、質問に暗示されています)、タイムスタンプ(次の自然なもの)を使用することをお勧めします。 –