問題タブ [devenv]
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.
visual-studio-2012 - devenv.exe - アプリケーション エラー
Visual Studio Ultimate 2012 をインストールしようとすると、次のエラーが発生します。
それらのいずれかをクリックすると、Visual Studio が閉じられ、先に進むことができません。
システムを再起動し、VSパッケージをアンインストールして再インストールしてみました。どちらもエラーを変更しませんでした。
build - VS2012 x64 クロス ツール コマンド プロンプト
現在、管理者としてvs2012 x64クロスツールコマンドプロンプトを最初に実行する必要がある多くのプロジェクトのソリューションがあります。次に、DevEnv を読み込み、そこからプロジェクトをビルドします。
TFS ビルド環境を使用してこれを行うにはどうすればよいですか? - ブルース
visual-studio-2012 - Visual Studio 2012 ビルド出力: タスクが取り消されました
私のチームには、ナイトリー ビルドの実行に使用する Windows Server 2008 R2 Enterprise、SP1 を実行する仮想マシンがあります。Visual Studio 2012 を使用し、C# プログラムから System.Diagnostics.Process.Start を介して devenv.exe を実行してビルド プロセスを起動しています。
最近、ビルド エラーが発生しており、出力ログは次のようになります。
1 つまたは 2 つのプロジェクトだけの場合もあれば、100 を超える場合もあります。FWIW、3 つのソリューションを構築しましたが、最初の 1 つが失敗しています。次の 2 つは正しくビルドされます。
この問題に関する情報を探すと、VS 2012 のどこかで例外 System.Threading.Tasks.TaskCanceledException がキャッチされたことが出力の原因であることがわかりました。それ以外は、何が起こっているのかわかりません。私の疑いは、それが並行プロジェクトのビルドと関係があるかもしれないということです。これまでのところ、この問題に関連する他の投稿は 1 つだけ見ました - http://social.msdn.microsoft.com/Forums/en-US/306f5a10-db72-4992-9d49-20ad1577ed05/visual-studio-2013-error -a-task-was-canceled?forum=visualstudiogeneral「答え」は本当に答えではありませんでした....
どんな助けや洞察もいただければ幸いです。
msbuild - ソリューションの最後のビルド以降に何も変更されていないのに、msbuild が非常に遅いのはなぜですか?
私は109のプロジェクトで解決策を持っています。すべての組み合わせ - .NET、Silverlight、MVC、Web アプリケーション、コンソール アプリケーション。
次に、msbuild を使用してコンソール上でビルドします。時間がかかります。理解できる - たくさんのプロジェクト、たくさんのファイル。
しかし、最初の直後に 2 回目にビルドすると、実際には何もビルドされていなくても、まだ時間がかかります。diag msbuild ログで確認できます。
たとえば、最初の完全なビルドのタスク パフォーマンスの概要は次のとおりです。
msbuild クレームTime Elapsed 00:08:39.44
罰金。ここで、同じコマンド ラインを再度実行すると、次の結果が得られます。
msbuild クレームTime Elapsed 00:05:25.70
。
これにより、次の疑問が生じます。
ResolveAssemblyReference
2 番目のビルドに時間がかかるのはなぜですか? 最初のビルドで作成されたキャッシュ ファイルはすべて残っています。何も変わっていません。97 秒と 106 秒というように、以前とほぼ同じ時間がかかっているのはなぜでしょうか。- なぜ
ValidateXaml
とCompileXaml
はまったく実行されているのですか? フルビルドから何も変わっていないということです!
今度は同じ実験を繰り返しますが、今回はdevenv
ではなくコマンド ラインでビルドしmsbuild
ます。msbuild と同様に、並列ビルドは使用されず、ログ レベルは diag です。
devenv
は最後にこのような素晴らしい要約を提示しないため、プロジェクトごとの要約から手動で集計する必要があります。
結果は私を驚かせました。次の PowerShell スクリプトを使用して、経過時間を集計しました。
devenv
コマンド ラインでまったく同じ立場からまったく同じソリューションをビルドするには00:06:10.9000000
、最初のビルドと00:00:03.1000000
2 番目のビルドが必要でした。わずか3秒です!!!.
統計を集計するための powershell スクリプトも作成しました。
最初の (完全な) ビルドのログで実行すると、次の出力が生成されます。
さて、2 番目のビルドの結果は次のとおりです。
ここでは、まったく同じソリューションについて話しています。
最後に、ソリューションで構築するために使用したスクリプトを次に示します。
msbuild:
開発者:
私のテストでmsbuild
は、これはがらくたの一部であり、コマンド ラインで使用して C# ソリューションを構築するべきではないことがわかりました。https://connect.microsoft.com/VisualStudio/feedback/details/586358/msbuild-ignores-projectsection-projectdependencies-in-sln-file-and-attempts-to-build-projects-in-wrong-orderがこれに追加されますフィーリング。
しかし、結局のところ、私は間違っている可能性があり、単純な微調整により、2番目のビルドで msbuild がそのまま効率的になるでしょうdevenv
。
2番目のビルドでmsbuildを正常に動作させる方法はありますか?
編集1
このCompileXaml
タスクは、 C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.Common.targetsMarkupCompilePass1
にあるターゲットの一部です。
ご覧のとおり、入力も出力もありません。
次に、2 番目のビルドの diag msbuild ログには、「再構築」などの疑わしい単語は含まれていません。
最後に、msbuild と devenv の両方がまったく同じ状況で実行され、マルチスレッド ビルドを使用していないことに注意してください。それでも、違いはひどいです - 5 分以上 (msbuild) 対 3 秒 (devenv、コマンド ライン)。
私にはまだ完全な謎です。
編集2
devenvビルドがどのように機能するかについての詳細がわかりました。ヒューリスティックを使用して、現在のプロジェクトを最初に msbuild に引き渡す必要があるかどうかを判断します。DisableFastUpToDateCheck
このヒューリスティックは既定で有効になっていますが、 msbuild プロパティを に設定することで無効にすることができますtrue
。
現在、コマンド ライン devenv build が msbuild を実行する必要があるかどうかを判断するには、実際には 3 秒以上かかります。全体として、私のようなソリューションでは、msbuild に何も渡す必要がないと判断するのに 20 秒または 30 秒かかる場合があります。
このヒューリスティックが、この大きな時間差の唯一の理由です。Visual Studio チームは、標準のビルド スクリプト (MarkupCompilePass1 のようなタスクが入力と出力によって駆動されない) の品質の低さを認識し、最初に msbuild をスキップする方法を考え出すことにしたと思います。
しかし、問題があります。ヒューリスティックは csproj ファイルのみを検査し、インポートされたターゲット ファイルは検査されません。さらに、他の TypeScript ファイルから参照される TypeScript ファイルのように、暗黙的な依存関係については何も知りません。そのため、TypeScript ファイルが別のプロジェクトに属し、プロジェクト ファイルから明示的にリンクされていない他の TypeScript ファイルを参照している場合、ヒューリスティックはそれらについて認識しないため、DisableFastUpToDateCheck = true
. ビルドは遅くなりますが、少なくとも正しくはなります。
結論-msbuildを修正する方法がわかりません。明らかにdevenvの人も修正できません。それが彼らがヒューリスティックを発明した理由のようです。
msbuild - typescript ファイルは pdb ファイルよりも新しいため、devenv は常にプロジェクトを再構築します。
タイプスクリプトを使用したプロジェクトがあります。devenv は常にこのプロジェクトを再構築しています。診断出力には次の行が含まれます。
では、どうすればこの問題を解決できますか? 前述の typescript ファイルは、PDB よりも真に新しいものです。しかし、PDB は typescript コンパイルの出力ではありません!!!
タイプスクリプトファイルをコンパイルする方法は次のとおりです。
プロジェクトは、アイテム グループ内の typescript ファイルを指定しTypeScriptCompile
ます。たとえば、次のようになります。
もちろん、予想されるファイルのみを@(OutputJavaScripts)
リストします。.js
PDB ファイルはありません。
では、なぜ devenv は typescript ファイルと PDB ファイルを一致させるのでしょうか? どうすれば修正できますか?
編集1
明確にしたいと思います。実際には typescript または C# ファイルを再コンパイルしません (初めて typescript ファイルを再コンパイルしますが、それだけです)。typescript は PDB よりも新しいため、ビルドを開始しますが、PDB の依存関係が実際に変更されていないことを認識します。同じことが javascript ファイルにも当てはまります - それらはすべて最新です。したがって、実際には何も再構築されませんが、そもそもなぜビルド シーケンスに入る必要があるのでしょうか。
silverlight - Silverlight プロジェクトが同時にビルドされないのはなぜですか?
かなりの数の Silverlight プロジェクトを使用したソリューションがあります。奇妙なことに気付きました。最大同時ビルド数を 8 に設定して Visual Studio IDE でビルドすると、Silverlight プロジェクトが順番にビルドされます。
他のプロジェクト (Silverlight 以外) は並行してビルドされます。
したがって、ビルドログは次のとおりです。
- Max Concurrent Builds が 1 の場合 - http://pastebin.com/raw.php?i=ZvguRmda
- 8の場合 - http://pastebin.com/raw.php?i=FGFHt54f
Silverlight ビルドがインターリーブしないのはなぜですか?
c# - Visual Studio の C# プラグインからの Debug|Trace.WriteLine - ConsoleTraceListener による表示
Python Tools for Visual Studio 2.0 の一部である C# プラグインを変更しました。コード内の Debug.WriteLine および Trace.WriteLine ステートメントからの出力を確認したいと考えています。プラグインは Visual Studio 2013 自体で使用され、python プロセスのデバッグを変更することに注意してください....
ここの PTVS ディスカッション フォーラムでdevenv.exe.config
pminaev が提案したように、トレース リスナーを追加できることを願っています(VS 自体に別の VS を接続するのは面倒なので、それを避けたいと考えています)。
他の .NET アプリケーションの正しい構成であると私が信じていることは、VS2013 自体では機能しないようです。 私の努力は以下に文書化されています。
誰かがプラグインのデバッグ/トレース出力を Visual Studio コンソール (または別の接続された VS インスタンスよりも便利な場所) にリダイレクトできた場合は、ヒントをいただければ幸いです....
私のGoogle-fuは、追加しようとしたことに基づいて、いくつかの例を見つけました...
...と...
その後PTVSを起動しても何も使えません。どちらの構成でも、ポップアップが表示されます。
ActivityLog は私にはあまり意味がありません:
リモートの python プロセスにアタッチしようとすると、別のポップアップが表示されます。
Google-foo は、これが .NET バージョンの読み込みに失敗したことを示唆しています...?