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. $ 123 $、$$、$と一致させるにはどうすればよいですか?
- 3. jqplotでポイントラベルをバーの色と一致させるにはどうすればよいですか?
- 4. コンテンツスクリプトとURLの末尾部分を一致させるにはどうすればよいですか?
- 5. ローカルのmysql設定をAmazon RDSと一致させるにはどうすればよいですか?
- 6. 内部のアノテーションとクラスを一致させるにはどうすればよいですか?
- 7. 通知アイコンの色とステータスバーの色を一致させるにはどうすればよいですか?
- 8. 現在のページのURLとナビゲーションバーを一致させるにはどうすればよいですか?
- 9. VirtualBox VMとVagrant VMを一致させるにはどうすればよいですか?
- 10. URLとクロム拡張のフラグメント識別子を一致させるにはどうすればよいですか?
- 11. Elasticsearchで裸のハイフンと一致させないにはどうすればよいですか?
- 12. IDはどのように一致させるのですか?
- 13. 任意の位置で複数のバイトを一致させるにはどうすればよいですか?
- 14. 文字列の末尾にアンダースコアを一致させるにはどうすればよいですか?
- 15. ggvis凡例をグラフに一致させるにはどうすればよいですか?
- 16. アクションバーのテーマをこの画像に一致させるにはどうすればよいですか?
- 17. GPSの場所をマップエリアに一致させるにはどうすればよいですか?
- 18. FirebugをHtmlUnitDriverのpageSourceレポートに一致させるにはどうすればよいですか?
- 19. Postman環境変数にJSON応答値を一致させるにはどうすればよいですか?
- 20. NetSuiteの保存済み検索にユーザーレコードを一致させるにはどうすればよいですか?
- 21. pandas DataFrameの複数の列を「間隔」に一致させるにはどうすればよいですか?
- 22. Pre-Buildイベントによって変更された最新バージョンのAssemblyInfo.csを取得するにはどうすればよいですか?
- 23. Managed C++:アンマネージバージョン番号をアセンブリバージョン番号と一致させるにはどうすればいいですか
- 24. Django:投稿データにアクセスして条件と一致させるにはどうすればいいですか
- 25. ファイル内のコンテンツを検索して一致させるにはどうすればよいですか?
- 26. ウェブサイトの住所を一致させるにはどうすればよいですか? (regex?library?google maps?)
- 27. 検索の一部と一致するレコードを取得するにはどうすればよいですか?
- 28. Laravel Spark v4.0.9で「Vueパッケージのバージョンが一致しません」というエラーを修正するにはどうすればよいですか?
- 29. kinect v2とジェスチャをどのように一致させるか?
- 30. grepとの一意の一致の数を出力するにはどうすればよいですか?