ClickOnceにアプリケーションを公開するたびに、リビジョン番号を1つ更新することができます。この変更を自動的に取得してAssemblyInfo.csファイルのバージョン番号を変更する方法はありますか?(私たちのすべてのエラー報告はAssemblyバージョンを参照してください)ClickOnce PublishバージョンをAssemblyInfo.csファイルバージョンと一致させるにはどうすればよいですか?
答えて
私たちは、ClickOnceのは、私たちの優先バージョン番号で公開トリガするTeam Foundation Serverのチームビルドを使用し、TFSBuild.projのAfterCompile
ターゲットにブロックを追加しましたタスクを使用してTFSチェンジセット番号を使用することができますが、your own custom taskまたはexisting solutionを使用して、AssemblyInfoファイルからバージョン番号を取得することができます。
これは理論的にはプロジェクトファイル(とにかくMSBuildスクリプト)でも実行できますが、デベロッパーマシンからの展開をお勧めします。
他のcontinuous integration(CI)ソリューションでも同様に対応できます。
編集:申し訳ありませんが、逆方向にあなたの質問を得ました。 ClickOnceのバージョン番号からAssemblyInfoファイルに移動することは可能です。上記のMSBuild Community TasksにはAssemblyInfoファイルを更新するタスクがあるので、ClickOnce設定XMLからバージョン番号を取得するカスタムタスクが必要です。
しかし、あなたはまた、ClickOnceのは、あまりにもバージョンを公開含めるようにエラー報告を変更することを検討可能性があります
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
Debug.WriteLine(System.Deployment.Application.ApplicationDeployment.
CurrentDeployment.CurrentVersion);
}
おそらく、.csprojファイルに格納されているバージョン番号に従ってAssemblyInfo.csを更新するコードを作成する必要があります。
Publish | Releaseビルドが実行されるときに、このビットを実行するように.csprojファイルを変更します。 MSBuildの人々は、特定のビルドタイプでカスタムアクションを実行する方法についてブログに書いています。 MSBuild team blogを確認してください。
ステップ:
- 使用外部インクリメントのバージョン番号(あなたはCruiseControl.NETのような継続的な統合サーバーを活用する場合、それはビルドラベルから来ています)。
- 現在のバージョンを保持し、MSBuild CommunityタスクのAssemblyInfoタスクを使用してビルドで更新するために、GlobalVersionInfo.cs(ソリューション内のすべてのプロジェクトによってリンク参照されるファイル)を使用します。
- スクリプトMage .NET SDKのコマンドラインツールを使用して、同じバージョン(
-v
および-mv
スイッチを参照)を使用してClickOnceマニフェストを更新します。
ところで、素敵なボーナスはあなたにも(バージョンと同じ)をmage.exeする最低限のバージョンを指定する場合は、自動的に、統合スクリプト経由で新しいClickOnce配置バージョンを公開するたびに、その後、すべてのユーザーがなる、ということです次のアプリケーションの起動時に自動的に更新されます。 PublishApplicationVersion
変数は、カスタムMSBuildのによって生成される
<MSBuild Projects="$(SolutionRoot)\MyProject\Myproject.csproj"
Properties="PublishDir=$(OutDir)\myProjectPublish\;
ApplicationVersion=$(PublishApplicationVersion);
Configuration=$(Configuration);Platform=$(Platform)"
Targets="Publish" />
:
私は最近、いくつかのカスタムタスクを使用して、これを実装しました。ClickOnceでこれを実装することで見つかった問題は、すべてのDLLファイルが更新されていることです。これにより、すべてのアプリケーションファイルをすべて更新するようにClickOnce更新プログラムがダウンロードされます。これにより、更新されたファイルのみが更新プログラムで再ダウンロードされるClickOnceの便利な機能がバイパスされます。
このようなものをClickOnceで実装するときは、ちょっと考えてください。
- 1. .NET ClickOnceアプリケーションで公開バージョンとアセンブリバージョンを同期させるにはどうすればよいですか?
- 2. jqplotでポイントラベルをバーの色と一致させるにはどうすればよいですか?
- 3. 通知アイコンの色とステータスバーの色を一致させるにはどうすればよいですか?
- 4. ローカルのmysql設定をAmazon RDSと一致させるにはどうすればよいですか?
- 5. IDはどのように一致させるのですか?
- 6. 文字列の末尾にアンダースコアを一致させるにはどうすればよいですか?
- 7. GPSの場所をマップエリアに一致させるにはどうすればよいですか?
- 8. ggvis凡例をグラフに一致させるにはどうすればよいですか?
- 9. Managed C++:アンマネージバージョン番号をアセンブリバージョン番号と一致させるにはどうすればいいですか
- 10. Django:投稿データにアクセスして条件と一致させるにはどうすればいいですか
- 11. ウェブサイトの住所を一致させるにはどうすればよいですか? (regex?library?google maps?)
- 12. ファイル内のコンテンツを検索して一致させるにはどうすればよいですか?
- 13. Pre-Buildイベントによって変更された最新バージョンのAssemblyInfo.csを取得するにはどうすればよいですか?
- 14. 検索の一部と一致するレコードを取得するにはどうすればよいですか?
- 15. grepとの一意の一致の数を出力するにはどうすればよいですか?
- 16. WinDbgの「SOSのバージョンが、デバッグしているCLRのバージョンと一致しません」とどうすればよいですか?
- 17. スケーリングされた(または変形された)コンテンツと一致するようにコンテナをスケールするにはどうすればよいですか?
- 18. Microsoft Visual C++ EXEまたはDLLのファイルバージョンを変更するにはどうすればよいですか?
- 19. antlr4ルールと一致する元のテキストを取得するにはどうすればよいですか?
- 20. TeamCityのバージョンを.NETアセンブリのバージョンと一致させる
- 21. ブロック一致のページとコンテンツタイプの条件を表示するにはどうすればよいですか?
- 22. String.scanとFindAllStringの一致動作をオーバーライドするにはどうすればよいですか?
- 23. Xcodeでかっこ一致を有効にするにはどうすればよいですか?
- 24. 子ノードを継承するテキストシーケンス(たとえば、sgmlスタイルのマークアップ)を一致させるにはどうすればよいですか?
- 25. PygletスプライトとPymunkシェイプを一緒に回転させるにはどうすればよいですか?
- 26. フォルダに一致するファイルリクエストを別のリンクにリダイレクトするにはどうすればよいですか?
- 27. テーブルから一致する値のグループを選択するにはどうすればよいですか?
- 28. UNIXの絶対パスとどのように一致させ、それをperlで抽出するのですか?
- 29. 重要なパターンに一致する行を削除するにはどうすればよいですか?
- 30. パターンに一致する部分文字列を抽出するにはどうすればよいですか?