問題タブ [incremental-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
msbuild - VisualStudio2012-MSBuildインクリメンタルビルドが変更を検出しない
デフォルトのターゲットが「BuildWithExternalReference」と同様の名前の新しいターゲットになるように、MSBuildプロジェクトをカスタマイズしました。この新しいターゲットは、他の2つのターゲットを呼び出します。1つ目は、外部ツールを使用してDLLをビルドする「BuildExternalReference」のようなカスタムターゲットです。ビルドされるDLLは、通常の「ビルド」ターゲットを使用してビルドされるメインプロジェクトの参照です。'BuildExternalReference'ターゲットの入力属性と出力属性を設定したので、入力はソースファイルを参照し、出力は結果のDLLを参照します。
VisualStudio2012とVisualStudio2010の両方で、ビルドは最初に呼び出されたときに正しく機能します。ただし、後続のビルドで外部ソースファイル(「BuildExternalReference」ターゲット入力属性によって参照される)を変更すると、Visual Studio 2012は単に「ビルド:0成功、0失敗、1最新、0スキップ」と報告します。VisualStudio2010は引き続き完全に機能します。さらに、MSBuild.exeを使用したコマンドラインからのビルドは完全に機能します。
Visual Studio 2012のビルドシステムが変更されたことは承知していますが、インクリメンタルビルドの実行方法の変更に関する情報が見つかりません。
Visual Studio 2012で、インクリメンタルビルドを変更するために何か変更がありましたか?
これが私が使用しているcsprojファイルの縮小版です:
2012年11月1日更新
これは、問題を再現する完全な自己完結型の例です。
https://skydrive.live.com/redir?resid=EA1DD6ACA92F9EFF!155&authkey=!ANhuqF_rrCgxpLE
これは、1つのプロジェクトによるソリューションです。MSBuildIssueExample \ MSBuildIssueExample.csprojファイルがカスタマイズされているため、カスタムのデフォルトターゲットがあります。このデフォルトのターゲットは、カスタムターゲット(「ExternalTool」と呼ばれます)を呼び出してから、デフォルトのビルドターゲットを呼び出します。
カスタムExternalToolターゲットは、動作を確認するためにいくつかのメッセージを書き出し、MSBuildIssueExample \ ExternalTool\Input.txtファイルの内容をMSBuildIssueExample\ExternalTool\Output.txtファイルにコピーします。
Input.txtファイルはExternalToolターゲットの入力であり、Output.txtは出力です。
問題を再現するには、次の手順に従います。
1)指定されたバージョンのVisualStudioでソリューションを開きます
2)ソリューションを一度構築して、出力が入力に対して最新であることを確認します
3)MSBuildIssueExample \ ExternalTool \ Input.txtを変更して、その内容がOutput.txtと一致しないようにします。
4)再構築
Visual Studio 2010でこのプロセスを実行すると、ExternalToolターゲットが再度呼び出され、Input.txtファイルがOutput.txtにコピーされます。
Visual Studio 2012でこのプロセスを実行すると、入力が出力よりも新しい場合でも、ExternalToolターゲットは呼び出されません。その結果、Input.txtの内容はOutput.txtに書き込まれません。
ただし、(ビルドだけでなく)再ビルドを実行すると、両方のバージョンのVisualStudioが期待どおりに機能します。
findbugs - インクリメンタルビルドでStyle、PMD、FindBugsを確認してください
プロジェクトでチェックスタイルを段階的に実行することを計画しています。私のCIサーバーがインクリメンタルビルドを実行していることを示します。これは、変更されたファイルと依存関係の単体テストのみを実行しています。ただし、チェックスタイル、PMD、Findbugsについては、変更されたファイルだけでなく、プロジェクト全体で実行しています。
これらの静的分析ツールは、最初のビルドではプロジェクト全体で実行し、その後は、変更されたファイルのセットでのみ増分ビルドを実行する必要があります。そして、変更されたファイルの結果をマージして結果を完成させ、ツールの検証が重要かどうかを知ることができます。
上記の要件に利用できるantタスクはありますか?
variables - 増分番号を含むtxtファイルを作成します
質問で申し訳ありませんが、私はプログラミングの初心者であり、おそらくこれは何をすべきかを知っている人にとっては非常に簡単です:
txt ファイルに、増分番号を持つ一連のリンクを作成する必要があります。たとえば、特定の部分を「固定」したままにして、部分を変更する必要があります。たとえば、次のように想像してください。
http://user:password@website.com/members/sets/001/somethingfixed-001.zip テキスト内の次の行は次のようになります。
http://user:password@website.com/members/sets/002/somethingfixed-002.zip など.
指定できる場所を生成し、リンクを作成してすべての行で固定部分を等しく保ち、必要なポイントまで001、002、003を段階的に配置する方法が必要だと思います。
最初のリンクは何か、修正する部分は何か、何を変更する必要があるかを尋ねる .bat ファイルを作成できたら素晴らしいことです。
私はこのようなプログラムを行います:
最初のリンクを挿入し、貼り付けます。
次に、固定部分は何かを尋ねられ、次のように入力します: .../members/sets/X/somethingfixed-Y.zip
変数 X と Y の範囲は? 開始番号?001 を入力すると、終了番号は何ですか? と聞かれます。150 を入力すると、txt ファイルにリンクが生成され、使用できるようになります。
それが明確であることを願っています。
乾杯
msbuild - MSBuild : インクリメンタル ビルドの問題
部分的なビルドに関連する質問があります。シナリオは以下の通り。
Windowsフォームアプリケーションプロジェクトとそれをサポートするクラスライブラリプロジェクトを含むソリューションがあります。MSBuild を使用してソリューションを構築しています。ビルドする前に、msbuild カスタム タスクを使用して各プロジェクトのアセンブリ ファイルのバージョンを変更します。これにより、AssemblyInfo ファイルが変更されます。assemblyinfo ファイルが変更されるため、msbuild は、assemblyInfo ファイルの変更以外に実際のコードの変更がない場合でも、すべてのプロジェクトをビルドします。したがって、ソリューションをビルドするたびに、すべてのプロジェクトがビルドされますが、理想的なケースでは、実際のコード変更が発生したプロジェクトのみをビルドする必要があります。このソリューションにより、単一のプロジェクトに変更があった場合でも、ビルド時間は変わりません。これには別の副作用があります。clickonce を使用してこのアプリケーションを公開しています。したがって、ソリューションがビルドされるたびに、ソリューション内のすべてのプロジェクトがビルドされます。これにより、新しいビルドを行うたびに、マニフェスト ファイル内のすべてのアセンブリ/exe に対して新しいハッシュ署名が生成されます。このため、アプリケーションの更新が公開されると、ユーザーはアプリケーション内のすべての dll/exe をダウンロードする必要があります。理想的には、更新されたファイル (1 つまたは 2 つ) のみがユーザーのシステムにダウンロードされている必要があります。
本質的に私が欲しいものです。1. 変更されたプロジェクトのみをビルドします。2. 変更されたプロジェクトのみのアセンブリ ファイル バージョンを更新します。
このようにして、ビルド時間を短縮し、クリックワンスの問題も解決できます。これに対する解決策/回避策はありますか?
eclipse - GNU Make Incremental Build: 特定のファイルの強制リビルド
Windows 7 で Eclipse (Juno) + CDT を使用して GCC を駆動し、makefile を自動生成します。GCC__DATE__
と__TIME__
プリプロセッサ マクロを使用して、プロジェクト構成ヘッダー ファイルにビルドの日付/タイムスタンプを追加するまではうまくいきました。
クリーン ビルドでは、これらのマクロはうまく機能しますが、インクリメンタル ビルドでは、Make は関連するオブジェクト ファイルを再構築しません。リンクに直接ジャンプするだけです。
touch
ビルド前のステップとしてWindowsに相当することを試みました(ここで説明します: https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-command)が、Makeはまだファイルをスキップします。また、ヘッダーを含むソース ファイルを「タッチ」しようとしました。まだサイコロはありません。
インクリメンタル ビルドであっても、特定のヘッダーに依存するすべてのファイルを常に再構築するように Make に指示するにはどうすればよいですか?
msbuild - StyleCop インクリメンタル チェック用の Msbuild CreateItem の出力のフィルター処理
変更されたファイルのみのインクリメンタル チェックをサポートするように stylecop ターゲットを変更しようとしています。
デバッグ時に、@(Compile) がチェック対象のファイルのリストであることがわかります。ただし、このリストを、変更されたファイル (つまり、 $(TargetPath) として参照できることがわかっているターゲット dll より後のタイムスタンプを持つファイル) のみにフィルター処理したいと考えています。
createitem の出力である「StyleCopFiles」を再帰的に処理し、変更されていないファイルを削除するにはどうすればよいでしょうか。
以下は、フィルター条件を追加したいターゲットです。
visual-studio-2010 - Visual Studio のインクリメンタル ビルドを完全に停止する方法は?
プロパティについては知っていますが、インクリメンタル ビルドを停止する場合は/incremental
毎回変更する必要があります。NO
すべてのプロジェクトで永久に停止する方法はありますか?