From 3ab7908c819a2076f9f67be9f268bdb5025e2478 Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Mon, 27 Aug 2018 17:59:35 -0700 Subject: [PATCH 1/6] Renames of long filenames --- ...ebugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md} | 0 ...ebugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md} | 0 ...osoft-visual-studio-remote-debugging-monitor-no-permission.md} | 0 ...-warning-attaching-to-a-process-owned-by-an-untrusted-user.md} | 0 ...-conflict-with-dependency-file.md => error-dependency-file.md} | 0 ...llecting-concurrency-data-for-an-aspnet-web-application.md.md} | 0 ...etailed-timing-data-aspnet-profiler-instrumentation-method.md} | 0 ...rofiler-to-a-dotnet-app-and-collect-application-statistics.md} | 0 ...-the-profiler-to-a-dotnet-app-and-collect-concurrency-data.md} | 0 ...-profiler-to-a-dotnet-framework-app-to-collect-memory-data.md} | 0 ...ofiler-to-a-native-app-and-collect-application-statistics..md} | 0 ...-the-profiler-to-a-native-app-and-collect-concurrency-data.md} | 0 ...ument-a-dotnet-framework-component-and-collect-memory-data.md} | 0 ...ument-a-dotnet-framework-component-and-collect-timing-data.md} | 0 ...-a-dynamically-compiled-aspnet-app-and-collect-timing-data.md} | 0 ...ly-compiled-aspnet-web-application-and-collect-memory-data.md} | 0 ...t-a-statically-compiled-aspnet-app-and-collect-memory-data.md} | 0 ...tatically-compiled-aspnet-and-collect-detailed-timing-data.md} | 0 ...aunch-a-stand-alone-app-and-collect-application-statistics.md} | 0 ...and-alone-dotnet-framework-app-to-collect-concurrency-data.md} | 0 ...-a-stand-alone-dotnet-framework-app-to-collect-memory-data.md} | 0 ...stand-alone-native-application-to-collect-concurrency-data.md} | 0 22 files changed, 0 insertions(+), 0 deletions(-) rename docs/debugger/{error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md => error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md} (100%) rename docs/vs-2015/debugger/{error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md => error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md} (100%) rename docs/vs-2015/debugger/{error-the-microsoft-visual-studio-remote-debugging-monitor-on-the-remote-computer-does-not-have-permission-to-connect-to-this-computer.md => error-the-microsoft-visual-studio-remote-debugging-monitor-no-permission.md} (100%) rename docs/vs-2015/debugger/{security-warning-attaching-to-a-process-owned-by-an-untrusted-user-can-be-dangerous-if-the-following-information-looks-suspicious-or-you-are-unsure-do-not-attach-to-this-process.md => security-warning-attaching-to-a-process-owned-by-an-untrusted-user.md} (100%) rename docs/vs-2015/misc/{error-the-dependency-file-in-project-project-cannot-be-copied-to-the-run-directory-because-it-would-conflict-with-dependency-file.md => error-dependency-file.md} (100%) rename docs/vs-2015/profiling/{collecting-application-statistics-for-aspnet-web-applications-using-the-profiler-sampling-method-from-the-command-line.md => collecting-concurrency-data-for-an-aspnet-web-application.md.md} (100%) rename docs/vs-2015/profiling/{collecting-detailed-timing-data-for-an-aspnet-web-application-using-the-profiler-instrumentation-method-from-the-command-line.md => collecting-detailed-timing-data-aspnet-profiler-instrumentation-method.md} (100%) rename docs/vs-2015/profiling/{how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md => how-to-attach-the-profiler-to-a-dotnet-app-and-collect-application-statistics.md} (100%) rename docs/vs-2015/profiling/{how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-concurrency-data-by-using-the-command-line.md => how-to-attach-the-profiler-to-a-dotnet-app-and-collect-concurrency-data.md} (100%) rename docs/vs-2015/profiling/{how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-memory-data-by-using-the-command-line.md => how-to-attach-the-profiler-to-a-dotnet-framework-app-to-collect-memory-data.md} (100%) rename docs/vs-2015/profiling/{how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md => how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md} (100%) rename docs/vs-2015/profiling/{how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-concurrency-data-by-using-the-command-line.md => how-to-attach-the-profiler-to-a-native-app-and-collect-concurrency-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-memory-data-with-the-profiler-by-using-the-command-line.md => how-to-instrument-a-dotnet-framework-component-and-collect-memory-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-timing-data-with-the-profiler-from-the-command-line.md => how-to-instrument-a-dotnet-framework-component-and-collect-timing-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md => how-to-instrument-a-dynamically-compiled-aspnet-app-and-collect-timing-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md => how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md => how-to-instrument-a-statically-compiled-aspnet-app-and-collect-memory-data.md} (100%) rename docs/vs-2015/profiling/{how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md => how-to-instrument-statically-compiled-aspnet-and-collect-detailed-timing-data.md} (100%) rename docs/vs-2015/profiling/{how-to-launch-a-stand-alone-application-with-the-profiler-and-collect-application-statistics-by-using-the-command-line.md => how-to-launch-a-stand-alone-app-and-collect-application-statistics.md} (100%) rename docs/vs-2015/profiling/{how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md => how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-concurrency-data.md} (100%) rename docs/vs-2015/profiling/{how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-memory-data-by-using-the-command-line.md => how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-memory-data.md} (100%) rename docs/vs-2015/profiling/{how-to-launch-a-stand-alone-native-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md => how-to-launch-a-stand-alone-native-application-to-collect-concurrency-data.md} (100%) diff --git a/docs/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md b/docs/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md similarity index 100% rename from docs/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md rename to docs/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md diff --git a/docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md b/docs/vs-2015/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md similarity index 100% rename from docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md rename to docs/vs-2015/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running.md diff --git a/docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-on-the-remote-computer-does-not-have-permission-to-connect-to-this-computer.md b/docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-no-permission.md similarity index 100% rename from docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-on-the-remote-computer-does-not-have-permission-to-connect-to-this-computer.md rename to docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-no-permission.md diff --git a/docs/vs-2015/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user-can-be-dangerous-if-the-following-information-looks-suspicious-or-you-are-unsure-do-not-attach-to-this-process.md b/docs/vs-2015/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user.md similarity index 100% rename from docs/vs-2015/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user-can-be-dangerous-if-the-following-information-looks-suspicious-or-you-are-unsure-do-not-attach-to-this-process.md rename to docs/vs-2015/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user.md diff --git a/docs/vs-2015/misc/error-the-dependency-file-in-project-project-cannot-be-copied-to-the-run-directory-because-it-would-conflict-with-dependency-file.md b/docs/vs-2015/misc/error-dependency-file.md similarity index 100% rename from docs/vs-2015/misc/error-the-dependency-file-in-project-project-cannot-be-copied-to-the-run-directory-because-it-would-conflict-with-dependency-file.md rename to docs/vs-2015/misc/error-dependency-file.md diff --git a/docs/vs-2015/profiling/collecting-application-statistics-for-aspnet-web-applications-using-the-profiler-sampling-method-from-the-command-line.md b/docs/vs-2015/profiling/collecting-concurrency-data-for-an-aspnet-web-application.md.md similarity index 100% rename from docs/vs-2015/profiling/collecting-application-statistics-for-aspnet-web-applications-using-the-profiler-sampling-method-from-the-command-line.md rename to docs/vs-2015/profiling/collecting-concurrency-data-for-an-aspnet-web-application.md.md diff --git a/docs/vs-2015/profiling/collecting-detailed-timing-data-for-an-aspnet-web-application-using-the-profiler-instrumentation-method-from-the-command-line.md b/docs/vs-2015/profiling/collecting-detailed-timing-data-aspnet-profiler-instrumentation-method.md similarity index 100% rename from docs/vs-2015/profiling/collecting-detailed-timing-data-for-an-aspnet-web-application-using-the-profiler-instrumentation-method-from-the-command-line.md rename to docs/vs-2015/profiling/collecting-detailed-timing-data-aspnet-profiler-instrumentation-method.md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-application-statistics.md similarity index 100% rename from docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-application-statistics.md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-concurrency-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-concurrency-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-concurrency-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-concurrency-data.md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-memory-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-app-to-collect-memory-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-memory-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-app-to-collect-memory-data.md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md similarity index 100% rename from docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-concurrency-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-concurrency-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-concurrency-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-concurrency-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-memory-data-with-the-profiler-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-memory-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-memory-data-with-the-profiler-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-memory-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-timing-data-with-the-profiler-from-the-command-line.md b/docs/vs-2015/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-timing-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-timing-data-with-the-profiler-from-the-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-timing-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-app-and-collect-timing-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-app-and-collect-timing-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md b/docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md b/docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-app-and-collect-memory-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-app-and-collect-memory-data.md diff --git a/docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-instrument-statically-compiled-aspnet-and-collect-detailed-timing-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-instrument-statically-compiled-aspnet-and-collect-detailed-timing-data.md diff --git a/docs/vs-2015/profiling/how-to-launch-a-stand-alone-application-with-the-profiler-and-collect-application-statistics-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-launch-a-stand-alone-app-and-collect-application-statistics.md similarity index 100% rename from docs/vs-2015/profiling/how-to-launch-a-stand-alone-application-with-the-profiler-and-collect-application-statistics-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-launch-a-stand-alone-app-and-collect-application-statistics.md diff --git a/docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-concurrency-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-concurrency-data.md diff --git a/docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-memory-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-memory-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-memory-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-memory-data.md diff --git a/docs/vs-2015/profiling/how-to-launch-a-stand-alone-native-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md b/docs/vs-2015/profiling/how-to-launch-a-stand-alone-native-application-to-collect-concurrency-data.md similarity index 100% rename from docs/vs-2015/profiling/how-to-launch-a-stand-alone-native-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md rename to docs/vs-2015/profiling/how-to-launch-a-stand-alone-native-application-to-collect-concurrency-data.md From 9bd59277b32f372efd23bc38f7f59153d25cfbd2 Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Mon, 27 Aug 2018 18:22:02 -0700 Subject: [PATCH 2/6] Add appropriate redirections for renames of long filenames --- .openpublishing.redirection.json | 115 +++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 3a37dd275a1..07ba43a357d 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -5911,6 +5911,121 @@ "source_path": "docs/sharepoint/requirements-for-developing-sharepoint-solutions.md", "redirect_url": "/visualstudio/sharepoint/getting-started-sharepoint-development-in-visual-studio", "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-memory-data-with-the-profiler-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-memory-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-launch-a-stand-alone-native-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-launch-a-stand-alone-native-application-to-collect-concurrency-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md", + "redirect_url": "/visualstudio/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running-on-the-remote-computer.md", + "redirect_url": "/visualstudio/debugger/error-remote-debugging-monitor-msvsmon-exe-does-not-appear-to-be-running", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-memory-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-memory-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-memory-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/collecting-application-statistics-for-aspnet-web-applications-using-the-profiler-sampling-method-from-the-command-line.md", + "redirect_url": "/visualstudio/profiling/collecting-concurrency-data-for-an-aspnet-web-application?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-application-statistics?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/misc/error-the-dependency-file-in-project-project-cannot-be-copied-to-the-run-directory-because-it-would-conflict-with-dependency-file.md", + "redirect_url": "/visualstudio/misc/error-dependency-file?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-launch-a-stand-alone-application-with-the-profiler-and-collect-application-statistics-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-launch-a-stand-alone-app-and-collect-application-statistics?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md", + "redirect_url": "/visualstudio/deployment/walkthrough-manually-deploying-a-clickonce-app-no-re-signing-required?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-memory-data-by-using-the-profiler-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-a-statically-compiled-aspnet-app-and-collect-memory-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-memory-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-app-to-collect-memory-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-concurrency-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-concurrency-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user-can-be-dangerous-if-the-following-information-looks-suspicious-or-you-are-unsure-do-not-attach-to-this-process.md", + "redirect_url": "/visualstudio/debugger/security-warning-attaching-to-a-process-owned-by-an-untrusted-user?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-on-the-remote-computer-does-not-have-permission-to-connect-to-this-computer.md", + "redirect_url": "/visualstudio/debugger/error-the-microsoft-visual-studio-remote-debugging-monitor-no-permission?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-stand-alone-dotnet-framework-component-and-collect-timing-data-with-the-profiler-from-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-a-dotnet-framework-component-and-collect-timing-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-statically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-statically-compiled-aspnet-and-collect-detailed-timing-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/collecting-detailed-timing-data-for-an-aspnet-web-application-using-the-profiler-instrumentation-method-from-the-command-line.md", + "redirect_url": "/visualstudio/profiling/collecting-detailed-timing-data-aspnet-profiler-instrumentation-method?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-launch-a-stand-alone-dotnet-framework-application-with-the-profiler-to-collect-concurrency-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-launch-a-stand-alone-dotnet-framework-app-to-collect-concurrency-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-instrument-a-dynamically-compiled-aspnet-web-application-and-collect-detailed-timing-data-with-the-profiler-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-instrument-a-dynamically-compiled-aspnet-app-and-collect-timing-data?view=vs-2015", + "redirect_document_id": false + }, + { + "source_path": "docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-dotnet-framework-stand-alone-application-to-collect-concurrency-data-by-using-the-command-line.md", + "redirect_url": "/visualstudio/profiling/how-to-attach-the-profiler-to-a-dotnet-app-and-collect-concurrency-data?view=vs-2015", + "redirect_document_id": false } ] } From a9c88e22f1861952f5f1004fa4c07467f7fa2593 Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Mon, 27 Aug 2018 18:38:09 -0700 Subject: [PATCH 3/6] Rename bad filename --- ...app-and-collect-application-statistics..md | 112 ------------------ 1 file changed, 112 deletions(-) delete mode 100644 docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md deleted file mode 100644 index bbae73832e8..00000000000 --- a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics..md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line | Microsoft Docs" -ms.custom: "" -ms.date: "2018-06-30" -ms.prod: "visual-studio-dev14" -ms.reviewer: "" -ms.suite: "" -ms.technology: - - "vs-ide-debug" -ms.tgt_pltfrm: "" -ms.topic: "article" -ms.assetid: df44fe42-281b-4398-b3fc-277b62ae41f1 -caps.latest.revision: 36 -author: "mikejo5000" -ms.author: "mikejo" -manager: "ghogen" ---- -# How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line -[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] - -The latest version of this topic can be found at [How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line](https://docs.microsoft.com/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line). - -This topic describes how to use the [!INCLUDE[vsprvs](../includes/vsprvs-md.md)] Profiling Tools command-line tools to attach the Profiler to a running native stand-alone (client) application and collect performance statistics by using the sampling method. - -> [!NOTE] -> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md). - -> [!NOTE] -> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../includes/vs-current-short-md.md)] installation directory. On 64-bit computers, both 64-bit and 32-bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the Command Prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md). - - When the profiler is attached to the application, you can pause and resume data collection. To end a profiling session, the Profiler must no longer be attached to the application and the Profiler must be explicitly shut down. - -## Attach the Profiler - To attach the Profiler to a target application by using the Profiler, you use the **VSPerfCmd/start** and **/attach** options to initialize the Profiler and attach to the target application. You can specify **/start** and **/attach** and their respective options on a single command line. You can also add the **/globaloff** option to pause data collection at the start of the target application. You then use **/globalon** to start to collect data. - -#### To attach the Profiler to a running .NET Framework application - -1. Open a Command Prompt window. - -2. Start the profiler. Type: - - **VSPerfCmd /start:sample /output:** `OutputFile` [`Options`] - - - The[/start](../profiling/start.md)**:sample** option initializes the profiler. - - - The [/output](../profiling/output.md)**:**`OutputFile` option is required with **/start**. `OutputFile` specifies the name and location of the profiling data (.vsp) file. - - You can use any of the following options with the **/start:sample** option. - - |Option|Description| - |------------|-----------------| - |[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the profiled process. This option is required only if the process is running as a user other than the logged-on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.| - |[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the ASP.NET application is running in a different session. The session idenitifier is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.| - |[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.| - |[/automark](../profiling/automark.md) **:** `Interval`|Use with **/wincounter** only. Specifies the number of milliseconds between Windows performance counter collection events. Default is 500 ms.| - |[/events](../profiling/events-vsperfcmd.md) **:** `Config`|Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW events are collected in a separate (.etl) file.| - -3. Attach the profiler to the target application. Type: - - **VSPerfCmd** [/attach](../profiling/attach.md) **:**{`PID`|`ProcName`} [`Sample Event`] - - `PID` specifies the process ID of the target application. `ProcessName` specifies the name of the process. Note that if you specify `ProcessName` and multiple processes that have the same name are running, results are unpredictable. You can view the process IDs of all running processes in Windows Task Manager. - - By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. This is approximately 100 times every second on a 1GH processor. You can specify one of the following options to change the clock cycle interval, or to specify a different sampling event. - - |Sample event|Description| - |------------------|-----------------| - |[/timer](../profiling/timer.md) **:** `Interval`|Changes the sampling interval to the number of non-halted clock cycles that are specified by `Interval`.| - |[/pf](../profiling/pf.md)[**:**`Interval`]|Changes the sampling event to page faults. If `Interval` is specified, sets the number of page faults between samples. Default is 10.| - |[/sys](../profiling/sys-vsperfcmd.md) [**:**`Interval`]|Changes the sampling event to system calls from the process to the operating system kernel (syscalls). If `Interval` is specified, sets the number of calls between samples. Default is 10.| - |[/counter](../profiling/counter.md) **:** `Config`|Changes the sampling event and interval to the processor performance counter and the interval that is specified in `Config`.| - -## Controlling Data Collection - When the target application is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. Controlling data collection enables you to collect data for a specific part of program execution, such as the starting or shutdown of the application. - -#### To start and stop data collection - -- The following pairs of **VSPerfCmd** options start and stop data collection. Specify each option on a separate command line. You can turn data collection on and off multiple times. - - |Option|Description| - |------------|-----------------| - |[/globalon /globaloff](../profiling/globalon-and-globaloff.md)|Starts (**/globalon**) or stops (**/globaloff**) data collection for all processes.| - |[/processon](../profiling/processon-and-processoff.md) **:** `PID` [/processoff](../profiling/processon-and-processoff.md) **:** `PID`|Starts (**/processon**) or stops (**/processoff**) data collection for the process that is specified by `PID`.| - |[/attach](../profiling/attach.md) **:** `PID` [/detach](../profiling/detach.md)|**/attach** starts to collect data for the process specified by `PID`. **/detach** stops data collection for all processes.| - -## Ending the profiling session - To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down. You can detach the profiler from an application that was profiled by using the sampling method by closing the application or by calling the **VSPerfCmd /detach** option. You then call the **VSPerfCmd /shutdown** option to turn the profiler off and close the profiling data file. The **VSPerfClrEnv /off** command clears the profiling environment variables. - -#### To end a profiling session - -1. Perform one of the following steps to detach the profiler from the target application. - - - Type **VSPerfCmd /detach** - - -or- - - - Close the target application. - -2. Shut down the profiler. Type: - - **VSPerfCmd** [/shutdown](../profiling/shutdown.md) - -3. (Optional) Clear the profiling environment variables. Type: - - **VSPerfClrEnv /off** - -## See Also - [Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md) - [Sampling Method Data Views](../profiling/profiler-sampling-method-data-views.md) - - - From e312b393e34347c0d4f88ed1ee0a96fce65a0288 Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Tue, 28 Aug 2018 10:23:47 -0700 Subject: [PATCH 4/6] More long filenames cleanup work --- ...and-that-preserves-branding-information.md | 169 ------------------ ...-app-and-collect-application-statistics.md | 112 ++++++++++++ 2 files changed, 112 insertions(+), 169 deletions(-) delete mode 100644 docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md create mode 100644 docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md diff --git a/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md b/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md deleted file mode 100644 index 5ff6f404949..00000000000 --- a/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -title: "Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information | Microsoft Docs" -ms.custom: "" -ms.date: "2018-06-30" -ms.prod: "visual-studio-dev14" -ms.reviewer: "" -ms.suite: "" -ms.technology: - - "vs-ide-deployment" -ms.tgt_pltfrm: "" -ms.topic: "article" -dev_langs: - - "VB" - - "CSharp" - - "C++" -helpviewer_keywords: - - "branding" - - "preserved branding information" - - "ClickOnce deployment, manually" - - "multiple ClickOnce deployment and branding" - - "ClickOnce deployment, SDK tools" - - "customer deployments" - - "manual ClickOnce deployments" - - "manifests [ClickOnce]" - - "ClickOnce applications, deployed by others" -ms.assetid: c21822fb-d4ee-42e4-b72d-41ee9786efe5 -caps.latest.revision: 14 -author: mikejo5000 -ms.author: mikejo -manager: "wpickett" ---- -# Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information -[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] - -The latest version of this topic can be found at [Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information](https://docs.microsoft.com/visualstudio/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information). - -When you create a [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application and then give it to a customer to publish and deploy, the customer has traditionally had to update the deployment manifest and re-sign it. While that is still the preferred method in most cases, the .NET Framework 3.5 enables you to create [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] deployments that can be deployed by customers without having to regenerate a new deployment manifest. For more information, see [Deploying ClickOnce Applications For Testing and Production Servers without Resigning](../deployment/deploying-clickonce-applications-for-testing-and-production-servers-without-resigning.md). - - When you create a [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application and then give it to a customer to publish and deploy, the application can use the customer's branding or can preserve your branding. For example, if the application is a single proprietary application, you might want to preserve your branding. If the application is highly customized for each customer, you might want to use the customer's branding. The .NET Framework 3.5 enables you to preserve your branding, publisher information and security signature when you give an application to an organization to deploy. For more information, see [Creating ClickOnce Applications for Others to Deploy](../deployment/creating-clickonce-applications-for-others-to-deploy.md). - -> [!NOTE] -> In this walkthrough you create deployments manually by using either the command-line tool Mage.exe or the graphical tool MageUI.exe. For more information about manual deployments, see [Walkthrough: Manually Deploying a ClickOnce Application](../deployment/walkthrough-manually-deploying-a-clickonce-application.md). - -## Prerequisites - To perform the steps in this walkthrough you need the following: - -- A Windows Forms application that you are ready to deploy. This application will be referred to as WindowsFormsApp1. - -- Visual Studio or the Windows SDK. - -### To deploy a ClickOnce application with multiple deployment and branding support using Mage.exe - -1. Open a Visual Studio command prompt or a [!INCLUDE[winsdkshort](../includes/winsdkshort-md.md)] command prompt, and change to the directory in which you will store your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] files. - -2. Create a directory named after the current version of your deployment. If this is the first time that you are deploying the application, you will likely choose **1.0.0.0**. - - > [!NOTE] - > The version of your deployment may be distinct from the version of your application files. - -3. Create a subdirectory named **bin** and copy all of your application files here, including executable files, assemblies, resources, and data files. - -4. Generate the application manifest with a call to Mage.exe. - - ``` - mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin -UseManifestForTrust true -Publisher "A. Datum Corporation" - ``` - -5. Sign the application manifest with your digital certificate. - - ``` - mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx - ``` - -6. Generate the deployment manifest with a call to Mage.exe. By default, Mage.exe will mark your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] deployment as an installed application, so that it can be run both online and offline. To make the application available only when the user is online, use the `-i` argument with a value of `f`. Since this application will take advantage of the multiple deployment feature, exclude the `-providerUrl` argument to Mage.exe. (In versions of the .NET Framework prior to version 3.5, excluding `-providerUrl` for an offline application will result in an error.) - - ``` - mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest - ``` - -7. Do not sign the deployment manifest. - -8. Provide all of the files to the customer, who will deploy the application on his network. - -9. At this point, the customer must sign the deployment manifest with his own self-generated certificate. For example, if the customer works for a company named Adventure Works, he can generate a self-signed certificate using the MakeCert.exe tool. Next, use the Pvk2pfx.exe tool to combine the files created by MakeCert.exe into a PFX file that can be passed to Mage.exe. - - ``` - makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer - pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx - ``` - -10. The customer next uses this certificate to sign the deployment manifest. - - ``` - mage -Sign WindowsFormsApp1.application -CertFile MyCert.pfx - ``` - -11. The customer deploys the application to their users. - -### To deploy a ClickOnce application with multiple deployment and branding support using MageUI.exe - -1. Open a Visual Studio command prompt or a [!INCLUDE[winsdkshort](../includes/winsdkshort-md.md)] command prompt, and navigate to the directory in which you will store your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] files. - -2. Create a subdirectory named **bin** and copy all of your application files here, including executable files, assemblies, resources, and data files. - -3. Create a subdirectory named after the current version of your deployment. If this is the first time that you are deploying the application, you will likely choose **1.0.0.0**. - - > [!NOTE] - > The version of your deployment may be distinct from the version of your application files. - -4. Move the \\**bin** directory into the directory you created in step 2. - -5. Start the graphical tool MageUI.exe. - - ``` - MageUI.exe - ``` - -6. Create a new application manifest by selecting **File**, **New**, **Application Manifest** from the menu. - -7. On the default **Name** tab, enter the name and version number of this deployment. Also, supply a value for **Publisher**, which will be used as the folder name for the application's shortcut link in the Start menu when it is deployed. - -8. Select the **Application Options** tab and click **Use Application Manifest for Trust Information**. This will enable third-party branding for this [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application. - -9. Select the **Files** tab and click the **Browse** button next to the Application Directory text box. - -10. Select the directory that contains your application files that you created in step 2, and click **OK** on the folder selection dialog box. - -11. Click the **Populate** button to add all your application files to the file list. If your application contains more than one executable file, mark the main executable file for this deployment as the startup application by selecting **Entry Point** from the **File Type** drop-down list. (If your application only contains one executable file, MageUI.exe will mark it for you.) - -12. Select the **Permissions Required** tab and select the level of trust you need your application to assert. The default is **Full Trust**, which will be appropriate for most applications. - -13. Select **File**, **Save** from the menu, and save the application manifest. You will be prompted to sign the application manifest when you save it. - -14. If you have a certificate stored as a file on your file system, use the **Sign as certificate file** option, and select the certificate from the file system using the ellipsis (**...**) button. - - -or- - - If your certificate is kept in a certificate store that can be accessed from your computer, select the **Sign with stored certificate option**, and select the certificate from the list provided. - -15. Select **File**, **New**, **Deployment Manifest** from the menu to create your deployment manifest, and then on the **Name** tab, supply a name and version number (**1.0.0.0** in this example). - -16. Switch to the **Update** tab, and specify how often you want this application to update. If your application uses the [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] Deployment API to check for updates itself, clear the check box labeled **This application should check for updates**. - -17. Switch to the **Application Reference** tab. You can pre-populate all of the values on this tab by clicking the **Select Manifest** button and selecting the application manifest you created in previous steps. - -18. Choose **Save** and save the deployment manifest to disk. You will be prompted to sign the application manifest when you save it. Click **Cancel** to save the manifest without signing it. - -19. Provide all of the application files to the customer. - -20. At this point, the customer must sign the deployment manifest with his own self-generated certificate. For example, if the customer works for a company named Adventure Works, he can generate a self-signed certificate using the MakeCert.exe tool. Next, use the Pvk2pfx.exe tool to combine the files created by MakeCert.exe into a PFX file that can be passed to MageUI.exe. - - ``` - makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer - pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx - ``` - -21. With the certificate generated, the customer now signs the deployment manifest by opening the deployment manifest in MageUI.exe, and then saving it. When the signing dialog box appears, the customer selects **Sign as certificate file** option, and chooses the PFX file he has saved on disk. - -22. The customer deploys the application to their users. - -## Next Steps - -## See Also - [Mage.exe (Manifest Generation and Editing Tool)](http://msdn.microsoft.com/library/77dfe576-2962-407e-af13-82255df725a1) - [MageUI.exe (Manifest Generation and Editing Tool, Graphical Client)](http://msdn.microsoft.com/library/f9e130a6-8117-49c4-839c-c988f641dc14) - [Makecert.exe (Certificate Creation Tool)](http://msdn.microsoft.com/library/b0343f8e-9c41-4852-a85c-f8a0c408cf0d) - - - diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md new file mode 100644 index 00000000000..bbae73832e8 --- /dev/null +++ b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md @@ -0,0 +1,112 @@ +--- +title: "How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line | Microsoft Docs" +ms.custom: "" +ms.date: "2018-06-30" +ms.prod: "visual-studio-dev14" +ms.reviewer: "" +ms.suite: "" +ms.technology: + - "vs-ide-debug" +ms.tgt_pltfrm: "" +ms.topic: "article" +ms.assetid: df44fe42-281b-4398-b3fc-277b62ae41f1 +caps.latest.revision: 36 +author: "mikejo5000" +ms.author: "mikejo" +manager: "ghogen" +--- +# How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line +[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] + +The latest version of this topic can be found at [How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line](https://docs.microsoft.com/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line). + +This topic describes how to use the [!INCLUDE[vsprvs](../includes/vsprvs-md.md)] Profiling Tools command-line tools to attach the Profiler to a running native stand-alone (client) application and collect performance statistics by using the sampling method. + +> [!NOTE] +> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md). + +> [!NOTE] +> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../includes/vs-current-short-md.md)] installation directory. On 64-bit computers, both 64-bit and 32-bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the Command Prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md). + + When the profiler is attached to the application, you can pause and resume data collection. To end a profiling session, the Profiler must no longer be attached to the application and the Profiler must be explicitly shut down. + +## Attach the Profiler + To attach the Profiler to a target application by using the Profiler, you use the **VSPerfCmd/start** and **/attach** options to initialize the Profiler and attach to the target application. You can specify **/start** and **/attach** and their respective options on a single command line. You can also add the **/globaloff** option to pause data collection at the start of the target application. You then use **/globalon** to start to collect data. + +#### To attach the Profiler to a running .NET Framework application + +1. Open a Command Prompt window. + +2. Start the profiler. Type: + + **VSPerfCmd /start:sample /output:** `OutputFile` [`Options`] + + - The[/start](../profiling/start.md)**:sample** option initializes the profiler. + + - The [/output](../profiling/output.md)**:**`OutputFile` option is required with **/start**. `OutputFile` specifies the name and location of the profiling data (.vsp) file. + + You can use any of the following options with the **/start:sample** option. + + |Option|Description| + |------------|-----------------| + |[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the profiled process. This option is required only if the process is running as a user other than the logged-on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.| + |[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the ASP.NET application is running in a different session. The session idenitifier is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.| + |[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.| + |[/automark](../profiling/automark.md) **:** `Interval`|Use with **/wincounter** only. Specifies the number of milliseconds between Windows performance counter collection events. Default is 500 ms.| + |[/events](../profiling/events-vsperfcmd.md) **:** `Config`|Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW events are collected in a separate (.etl) file.| + +3. Attach the profiler to the target application. Type: + + **VSPerfCmd** [/attach](../profiling/attach.md) **:**{`PID`|`ProcName`} [`Sample Event`] + + `PID` specifies the process ID of the target application. `ProcessName` specifies the name of the process. Note that if you specify `ProcessName` and multiple processes that have the same name are running, results are unpredictable. You can view the process IDs of all running processes in Windows Task Manager. + + By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. This is approximately 100 times every second on a 1GH processor. You can specify one of the following options to change the clock cycle interval, or to specify a different sampling event. + + |Sample event|Description| + |------------------|-----------------| + |[/timer](../profiling/timer.md) **:** `Interval`|Changes the sampling interval to the number of non-halted clock cycles that are specified by `Interval`.| + |[/pf](../profiling/pf.md)[**:**`Interval`]|Changes the sampling event to page faults. If `Interval` is specified, sets the number of page faults between samples. Default is 10.| + |[/sys](../profiling/sys-vsperfcmd.md) [**:**`Interval`]|Changes the sampling event to system calls from the process to the operating system kernel (syscalls). If `Interval` is specified, sets the number of calls between samples. Default is 10.| + |[/counter](../profiling/counter.md) **:** `Config`|Changes the sampling event and interval to the processor performance counter and the interval that is specified in `Config`.| + +## Controlling Data Collection + When the target application is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. Controlling data collection enables you to collect data for a specific part of program execution, such as the starting or shutdown of the application. + +#### To start and stop data collection + +- The following pairs of **VSPerfCmd** options start and stop data collection. Specify each option on a separate command line. You can turn data collection on and off multiple times. + + |Option|Description| + |------------|-----------------| + |[/globalon /globaloff](../profiling/globalon-and-globaloff.md)|Starts (**/globalon**) or stops (**/globaloff**) data collection for all processes.| + |[/processon](../profiling/processon-and-processoff.md) **:** `PID` [/processoff](../profiling/processon-and-processoff.md) **:** `PID`|Starts (**/processon**) or stops (**/processoff**) data collection for the process that is specified by `PID`.| + |[/attach](../profiling/attach.md) **:** `PID` [/detach](../profiling/detach.md)|**/attach** starts to collect data for the process specified by `PID`. **/detach** stops data collection for all processes.| + +## Ending the profiling session + To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down. You can detach the profiler from an application that was profiled by using the sampling method by closing the application or by calling the **VSPerfCmd /detach** option. You then call the **VSPerfCmd /shutdown** option to turn the profiler off and close the profiling data file. The **VSPerfClrEnv /off** command clears the profiling environment variables. + +#### To end a profiling session + +1. Perform one of the following steps to detach the profiler from the target application. + + - Type **VSPerfCmd /detach** + + -or- + + - Close the target application. + +2. Shut down the profiler. Type: + + **VSPerfCmd** [/shutdown](../profiling/shutdown.md) + +3. (Optional) Clear the profiling environment variables. Type: + + **VSPerfClrEnv /off** + +## See Also + [Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md) + [Sampling Method Data Views](../profiling/profiler-sampling-method-data-views.md) + + + From 13d38b95839eb90107c3734342502d725f195eb4 Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Tue, 28 Aug 2018 10:38:55 -0700 Subject: [PATCH 5/6] Revert "More long filenames cleanup work" This reverts commit e312b393e34347c0d4f88ed1ee0a96fce65a0288. --- ...and-that-preserves-branding-information.md | 169 ++++++++++++++++++ ...-app-and-collect-application-statistics.md | 112 ------------ 2 files changed, 169 insertions(+), 112 deletions(-) create mode 100644 docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md delete mode 100644 docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md diff --git a/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md b/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md new file mode 100644 index 00000000000..5ff6f404949 --- /dev/null +++ b/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md @@ -0,0 +1,169 @@ +--- +title: "Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information | Microsoft Docs" +ms.custom: "" +ms.date: "2018-06-30" +ms.prod: "visual-studio-dev14" +ms.reviewer: "" +ms.suite: "" +ms.technology: + - "vs-ide-deployment" +ms.tgt_pltfrm: "" +ms.topic: "article" +dev_langs: + - "VB" + - "CSharp" + - "C++" +helpviewer_keywords: + - "branding" + - "preserved branding information" + - "ClickOnce deployment, manually" + - "multiple ClickOnce deployment and branding" + - "ClickOnce deployment, SDK tools" + - "customer deployments" + - "manual ClickOnce deployments" + - "manifests [ClickOnce]" + - "ClickOnce applications, deployed by others" +ms.assetid: c21822fb-d4ee-42e4-b72d-41ee9786efe5 +caps.latest.revision: 14 +author: mikejo5000 +ms.author: mikejo +manager: "wpickett" +--- +# Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information +[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] + +The latest version of this topic can be found at [Walkthrough: Manually Deploying a ClickOnce Application that Does Not Require Re-Signing and that Preserves Branding Information](https://docs.microsoft.com/visualstudio/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information). + +When you create a [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application and then give it to a customer to publish and deploy, the customer has traditionally had to update the deployment manifest and re-sign it. While that is still the preferred method in most cases, the .NET Framework 3.5 enables you to create [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] deployments that can be deployed by customers without having to regenerate a new deployment manifest. For more information, see [Deploying ClickOnce Applications For Testing and Production Servers without Resigning](../deployment/deploying-clickonce-applications-for-testing-and-production-servers-without-resigning.md). + + When you create a [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application and then give it to a customer to publish and deploy, the application can use the customer's branding or can preserve your branding. For example, if the application is a single proprietary application, you might want to preserve your branding. If the application is highly customized for each customer, you might want to use the customer's branding. The .NET Framework 3.5 enables you to preserve your branding, publisher information and security signature when you give an application to an organization to deploy. For more information, see [Creating ClickOnce Applications for Others to Deploy](../deployment/creating-clickonce-applications-for-others-to-deploy.md). + +> [!NOTE] +> In this walkthrough you create deployments manually by using either the command-line tool Mage.exe or the graphical tool MageUI.exe. For more information about manual deployments, see [Walkthrough: Manually Deploying a ClickOnce Application](../deployment/walkthrough-manually-deploying-a-clickonce-application.md). + +## Prerequisites + To perform the steps in this walkthrough you need the following: + +- A Windows Forms application that you are ready to deploy. This application will be referred to as WindowsFormsApp1. + +- Visual Studio or the Windows SDK. + +### To deploy a ClickOnce application with multiple deployment and branding support using Mage.exe + +1. Open a Visual Studio command prompt or a [!INCLUDE[winsdkshort](../includes/winsdkshort-md.md)] command prompt, and change to the directory in which you will store your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] files. + +2. Create a directory named after the current version of your deployment. If this is the first time that you are deploying the application, you will likely choose **1.0.0.0**. + + > [!NOTE] + > The version of your deployment may be distinct from the version of your application files. + +3. Create a subdirectory named **bin** and copy all of your application files here, including executable files, assemblies, resources, and data files. + +4. Generate the application manifest with a call to Mage.exe. + + ``` + mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin -UseManifestForTrust true -Publisher "A. Datum Corporation" + ``` + +5. Sign the application manifest with your digital certificate. + + ``` + mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx + ``` + +6. Generate the deployment manifest with a call to Mage.exe. By default, Mage.exe will mark your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] deployment as an installed application, so that it can be run both online and offline. To make the application available only when the user is online, use the `-i` argument with a value of `f`. Since this application will take advantage of the multiple deployment feature, exclude the `-providerUrl` argument to Mage.exe. (In versions of the .NET Framework prior to version 3.5, excluding `-providerUrl` for an offline application will result in an error.) + + ``` + mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest + ``` + +7. Do not sign the deployment manifest. + +8. Provide all of the files to the customer, who will deploy the application on his network. + +9. At this point, the customer must sign the deployment manifest with his own self-generated certificate. For example, if the customer works for a company named Adventure Works, he can generate a self-signed certificate using the MakeCert.exe tool. Next, use the Pvk2pfx.exe tool to combine the files created by MakeCert.exe into a PFX file that can be passed to Mage.exe. + + ``` + makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer + pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx + ``` + +10. The customer next uses this certificate to sign the deployment manifest. + + ``` + mage -Sign WindowsFormsApp1.application -CertFile MyCert.pfx + ``` + +11. The customer deploys the application to their users. + +### To deploy a ClickOnce application with multiple deployment and branding support using MageUI.exe + +1. Open a Visual Studio command prompt or a [!INCLUDE[winsdkshort](../includes/winsdkshort-md.md)] command prompt, and navigate to the directory in which you will store your [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] files. + +2. Create a subdirectory named **bin** and copy all of your application files here, including executable files, assemblies, resources, and data files. + +3. Create a subdirectory named after the current version of your deployment. If this is the first time that you are deploying the application, you will likely choose **1.0.0.0**. + + > [!NOTE] + > The version of your deployment may be distinct from the version of your application files. + +4. Move the \\**bin** directory into the directory you created in step 2. + +5. Start the graphical tool MageUI.exe. + + ``` + MageUI.exe + ``` + +6. Create a new application manifest by selecting **File**, **New**, **Application Manifest** from the menu. + +7. On the default **Name** tab, enter the name and version number of this deployment. Also, supply a value for **Publisher**, which will be used as the folder name for the application's shortcut link in the Start menu when it is deployed. + +8. Select the **Application Options** tab and click **Use Application Manifest for Trust Information**. This will enable third-party branding for this [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] application. + +9. Select the **Files** tab and click the **Browse** button next to the Application Directory text box. + +10. Select the directory that contains your application files that you created in step 2, and click **OK** on the folder selection dialog box. + +11. Click the **Populate** button to add all your application files to the file list. If your application contains more than one executable file, mark the main executable file for this deployment as the startup application by selecting **Entry Point** from the **File Type** drop-down list. (If your application only contains one executable file, MageUI.exe will mark it for you.) + +12. Select the **Permissions Required** tab and select the level of trust you need your application to assert. The default is **Full Trust**, which will be appropriate for most applications. + +13. Select **File**, **Save** from the menu, and save the application manifest. You will be prompted to sign the application manifest when you save it. + +14. If you have a certificate stored as a file on your file system, use the **Sign as certificate file** option, and select the certificate from the file system using the ellipsis (**...**) button. + + -or- + + If your certificate is kept in a certificate store that can be accessed from your computer, select the **Sign with stored certificate option**, and select the certificate from the list provided. + +15. Select **File**, **New**, **Deployment Manifest** from the menu to create your deployment manifest, and then on the **Name** tab, supply a name and version number (**1.0.0.0** in this example). + +16. Switch to the **Update** tab, and specify how often you want this application to update. If your application uses the [!INCLUDE[ndptecclick](../includes/ndptecclick-md.md)] Deployment API to check for updates itself, clear the check box labeled **This application should check for updates**. + +17. Switch to the **Application Reference** tab. You can pre-populate all of the values on this tab by clicking the **Select Manifest** button and selecting the application manifest you created in previous steps. + +18. Choose **Save** and save the deployment manifest to disk. You will be prompted to sign the application manifest when you save it. Click **Cancel** to save the manifest without signing it. + +19. Provide all of the application files to the customer. + +20. At this point, the customer must sign the deployment manifest with his own self-generated certificate. For example, if the customer works for a company named Adventure Works, he can generate a self-signed certificate using the MakeCert.exe tool. Next, use the Pvk2pfx.exe tool to combine the files created by MakeCert.exe into a PFX file that can be passed to MageUI.exe. + + ``` + makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer + pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx + ``` + +21. With the certificate generated, the customer now signs the deployment manifest by opening the deployment manifest in MageUI.exe, and then saving it. When the signing dialog box appears, the customer selects **Sign as certificate file** option, and chooses the PFX file he has saved on disk. + +22. The customer deploys the application to their users. + +## Next Steps + +## See Also + [Mage.exe (Manifest Generation and Editing Tool)](http://msdn.microsoft.com/library/77dfe576-2962-407e-af13-82255df725a1) + [MageUI.exe (Manifest Generation and Editing Tool, Graphical Client)](http://msdn.microsoft.com/library/f9e130a6-8117-49c4-839c-c988f641dc14) + [Makecert.exe (Certificate Creation Tool)](http://msdn.microsoft.com/library/b0343f8e-9c41-4852-a85c-f8a0c408cf0d) + + + diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md deleted file mode 100644 index bbae73832e8..00000000000 --- a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line | Microsoft Docs" -ms.custom: "" -ms.date: "2018-06-30" -ms.prod: "visual-studio-dev14" -ms.reviewer: "" -ms.suite: "" -ms.technology: - - "vs-ide-debug" -ms.tgt_pltfrm: "" -ms.topic: "article" -ms.assetid: df44fe42-281b-4398-b3fc-277b62ae41f1 -caps.latest.revision: 36 -author: "mikejo5000" -ms.author: "mikejo" -manager: "ghogen" ---- -# How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line -[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] - -The latest version of this topic can be found at [How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line](https://docs.microsoft.com/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line). - -This topic describes how to use the [!INCLUDE[vsprvs](../includes/vsprvs-md.md)] Profiling Tools command-line tools to attach the Profiler to a running native stand-alone (client) application and collect performance statistics by using the sampling method. - -> [!NOTE] -> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md). - -> [!NOTE] -> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../includes/vs-current-short-md.md)] installation directory. On 64-bit computers, both 64-bit and 32-bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the Command Prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md). - - When the profiler is attached to the application, you can pause and resume data collection. To end a profiling session, the Profiler must no longer be attached to the application and the Profiler must be explicitly shut down. - -## Attach the Profiler - To attach the Profiler to a target application by using the Profiler, you use the **VSPerfCmd/start** and **/attach** options to initialize the Profiler and attach to the target application. You can specify **/start** and **/attach** and their respective options on a single command line. You can also add the **/globaloff** option to pause data collection at the start of the target application. You then use **/globalon** to start to collect data. - -#### To attach the Profiler to a running .NET Framework application - -1. Open a Command Prompt window. - -2. Start the profiler. Type: - - **VSPerfCmd /start:sample /output:** `OutputFile` [`Options`] - - - The[/start](../profiling/start.md)**:sample** option initializes the profiler. - - - The [/output](../profiling/output.md)**:**`OutputFile` option is required with **/start**. `OutputFile` specifies the name and location of the profiling data (.vsp) file. - - You can use any of the following options with the **/start:sample** option. - - |Option|Description| - |------------|-----------------| - |[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the profiled process. This option is required only if the process is running as a user other than the logged-on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.| - |[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the ASP.NET application is running in a different session. The session idenitifier is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.| - |[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.| - |[/automark](../profiling/automark.md) **:** `Interval`|Use with **/wincounter** only. Specifies the number of milliseconds between Windows performance counter collection events. Default is 500 ms.| - |[/events](../profiling/events-vsperfcmd.md) **:** `Config`|Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW events are collected in a separate (.etl) file.| - -3. Attach the profiler to the target application. Type: - - **VSPerfCmd** [/attach](../profiling/attach.md) **:**{`PID`|`ProcName`} [`Sample Event`] - - `PID` specifies the process ID of the target application. `ProcessName` specifies the name of the process. Note that if you specify `ProcessName` and multiple processes that have the same name are running, results are unpredictable. You can view the process IDs of all running processes in Windows Task Manager. - - By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. This is approximately 100 times every second on a 1GH processor. You can specify one of the following options to change the clock cycle interval, or to specify a different sampling event. - - |Sample event|Description| - |------------------|-----------------| - |[/timer](../profiling/timer.md) **:** `Interval`|Changes the sampling interval to the number of non-halted clock cycles that are specified by `Interval`.| - |[/pf](../profiling/pf.md)[**:**`Interval`]|Changes the sampling event to page faults. If `Interval` is specified, sets the number of page faults between samples. Default is 10.| - |[/sys](../profiling/sys-vsperfcmd.md) [**:**`Interval`]|Changes the sampling event to system calls from the process to the operating system kernel (syscalls). If `Interval` is specified, sets the number of calls between samples. Default is 10.| - |[/counter](../profiling/counter.md) **:** `Config`|Changes the sampling event and interval to the processor performance counter and the interval that is specified in `Config`.| - -## Controlling Data Collection - When the target application is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. Controlling data collection enables you to collect data for a specific part of program execution, such as the starting or shutdown of the application. - -#### To start and stop data collection - -- The following pairs of **VSPerfCmd** options start and stop data collection. Specify each option on a separate command line. You can turn data collection on and off multiple times. - - |Option|Description| - |------------|-----------------| - |[/globalon /globaloff](../profiling/globalon-and-globaloff.md)|Starts (**/globalon**) or stops (**/globaloff**) data collection for all processes.| - |[/processon](../profiling/processon-and-processoff.md) **:** `PID` [/processoff](../profiling/processon-and-processoff.md) **:** `PID`|Starts (**/processon**) or stops (**/processoff**) data collection for the process that is specified by `PID`.| - |[/attach](../profiling/attach.md) **:** `PID` [/detach](../profiling/detach.md)|**/attach** starts to collect data for the process specified by `PID`. **/detach** stops data collection for all processes.| - -## Ending the profiling session - To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down. You can detach the profiler from an application that was profiled by using the sampling method by closing the application or by calling the **VSPerfCmd /detach** option. You then call the **VSPerfCmd /shutdown** option to turn the profiler off and close the profiling data file. The **VSPerfClrEnv /off** command clears the profiling environment variables. - -#### To end a profiling session - -1. Perform one of the following steps to detach the profiler from the target application. - - - Type **VSPerfCmd /detach** - - -or- - - - Close the target application. - -2. Shut down the profiler. Type: - - **VSPerfCmd** [/shutdown](../profiling/shutdown.md) - -3. (Optional) Clear the profiling environment variables. Type: - - **VSPerfClrEnv /off** - -## See Also - [Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md) - [Sampling Method Data Views](../profiling/profiler-sampling-method-data-views.md) - - - From 1898f8c157f2245f1abb6bc64b0324cafd0b8bfb Mon Sep 17 00:00:00 2001 From: Gordon Hogenson Date: Tue, 28 Aug 2018 10:49:23 -0700 Subject: [PATCH 6/6] Fix up long rename work --- ...a-clickonce-app-no-re-signing-required.md} | 0 ...-app-and-collect-application-statistics.md | 112 ++++++++++++++++++ 2 files changed, 112 insertions(+) rename docs/vs-2015/deployment/{walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md => walkthrough-manually-deploying-a-clickonce-app-no-re-signing-required.md} (100%) create mode 100644 docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md diff --git a/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md b/docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-app-no-re-signing-required.md similarity index 100% rename from docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-application-that-does-not-require-re-signing-and-that-preserves-branding-information.md rename to docs/vs-2015/deployment/walkthrough-manually-deploying-a-clickonce-app-no-re-signing-required.md diff --git a/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md new file mode 100644 index 00000000000..bbae73832e8 --- /dev/null +++ b/docs/vs-2015/profiling/how-to-attach-the-profiler-to-a-native-app-and-collect-application-statistics.md @@ -0,0 +1,112 @@ +--- +title: "How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line | Microsoft Docs" +ms.custom: "" +ms.date: "2018-06-30" +ms.prod: "visual-studio-dev14" +ms.reviewer: "" +ms.suite: "" +ms.technology: + - "vs-ide-debug" +ms.tgt_pltfrm: "" +ms.topic: "article" +ms.assetid: df44fe42-281b-4398-b3fc-277b62ae41f1 +caps.latest.revision: 36 +author: "mikejo5000" +ms.author: "mikejo" +manager: "ghogen" +--- +# How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line +[!INCLUDE[vs2017banner](../includes/vs2017banner.md)] + +The latest version of this topic can be found at [How to: Attach the Profiler to a Native Stand-Alone Application and Collect Application Statistics by Using the Command Line](https://docs.microsoft.com/visualstudio/profiling/how-to-attach-the-profiler-to-a-native-stand-alone-application-and-collect-application-statistics-by-using-the-command-line). + +This topic describes how to use the [!INCLUDE[vsprvs](../includes/vsprvs-md.md)] Profiling Tools command-line tools to attach the Profiler to a running native stand-alone (client) application and collect performance statistics by using the sampling method. + +> [!NOTE] +> Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See [Performance Tools on Windows 8 and Windows Server 2012 applications](../profiling/performance-tools-on-windows-8-and-windows-server-2012-applications.md). + +> [!NOTE] +> Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the [!INCLUDE[vs_current_short](../includes/vs-current-short-md.md)] installation directory. On 64-bit computers, both 64-bit and 32-bit versions of the tools are available. To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the Command Prompt window or add it to the command itself. For more information, see [Specifying the Path to Command Line Tools](../profiling/specifying-the-path-to-profiling-tools-command-line-tools.md). + + When the profiler is attached to the application, you can pause and resume data collection. To end a profiling session, the Profiler must no longer be attached to the application and the Profiler must be explicitly shut down. + +## Attach the Profiler + To attach the Profiler to a target application by using the Profiler, you use the **VSPerfCmd/start** and **/attach** options to initialize the Profiler and attach to the target application. You can specify **/start** and **/attach** and their respective options on a single command line. You can also add the **/globaloff** option to pause data collection at the start of the target application. You then use **/globalon** to start to collect data. + +#### To attach the Profiler to a running .NET Framework application + +1. Open a Command Prompt window. + +2. Start the profiler. Type: + + **VSPerfCmd /start:sample /output:** `OutputFile` [`Options`] + + - The[/start](../profiling/start.md)**:sample** option initializes the profiler. + + - The [/output](../profiling/output.md)**:**`OutputFile` option is required with **/start**. `OutputFile` specifies the name and location of the profiling data (.vsp) file. + + You can use any of the following options with the **/start:sample** option. + + |Option|Description| + |------------|-----------------| + |[/user](../profiling/user-vsperfcmd.md) **:**[`Domain`**\\**]`UserName`|Specifies the domain and user name of the account that owns the profiled process. This option is required only if the process is running as a user other than the logged-on user. The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.| + |[/crosssession](../profiling/crosssession.md)|Enables profiling of processes in other sessions. This option is required if the ASP.NET application is running in a different session. The session idenitifier is listed in the Session ID column on the Processes tab of Windows Task Manager. **/CS** can be specified as an abbreviation for **/crosssession**.| + |[/wincounter](../profiling/wincounter.md) **:** `WinCounterPath`|Specifies a Windows performance counter to be collected during profiling.| + |[/automark](../profiling/automark.md) **:** `Interval`|Use with **/wincounter** only. Specifies the number of milliseconds between Windows performance counter collection events. Default is 500 ms.| + |[/events](../profiling/events-vsperfcmd.md) **:** `Config`|Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW events are collected in a separate (.etl) file.| + +3. Attach the profiler to the target application. Type: + + **VSPerfCmd** [/attach](../profiling/attach.md) **:**{`PID`|`ProcName`} [`Sample Event`] + + `PID` specifies the process ID of the target application. `ProcessName` specifies the name of the process. Note that if you specify `ProcessName` and multiple processes that have the same name are running, results are unpredictable. You can view the process IDs of all running processes in Windows Task Manager. + + By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. This is approximately 100 times every second on a 1GH processor. You can specify one of the following options to change the clock cycle interval, or to specify a different sampling event. + + |Sample event|Description| + |------------------|-----------------| + |[/timer](../profiling/timer.md) **:** `Interval`|Changes the sampling interval to the number of non-halted clock cycles that are specified by `Interval`.| + |[/pf](../profiling/pf.md)[**:**`Interval`]|Changes the sampling event to page faults. If `Interval` is specified, sets the number of page faults between samples. Default is 10.| + |[/sys](../profiling/sys-vsperfcmd.md) [**:**`Interval`]|Changes the sampling event to system calls from the process to the operating system kernel (syscalls). If `Interval` is specified, sets the number of calls between samples. Default is 10.| + |[/counter](../profiling/counter.md) **:** `Config`|Changes the sampling event and interval to the processor performance counter and the interval that is specified in `Config`.| + +## Controlling Data Collection + When the target application is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. Controlling data collection enables you to collect data for a specific part of program execution, such as the starting or shutdown of the application. + +#### To start and stop data collection + +- The following pairs of **VSPerfCmd** options start and stop data collection. Specify each option on a separate command line. You can turn data collection on and off multiple times. + + |Option|Description| + |------------|-----------------| + |[/globalon /globaloff](../profiling/globalon-and-globaloff.md)|Starts (**/globalon**) or stops (**/globaloff**) data collection for all processes.| + |[/processon](../profiling/processon-and-processoff.md) **:** `PID` [/processoff](../profiling/processon-and-processoff.md) **:** `PID`|Starts (**/processon**) or stops (**/processoff**) data collection for the process that is specified by `PID`.| + |[/attach](../profiling/attach.md) **:** `PID` [/detach](../profiling/detach.md)|**/attach** starts to collect data for the process specified by `PID`. **/detach** stops data collection for all processes.| + +## Ending the profiling session + To end a profiling session, the profiler must be detached from all profiled processes and the profiler must be explicitly shut down. You can detach the profiler from an application that was profiled by using the sampling method by closing the application or by calling the **VSPerfCmd /detach** option. You then call the **VSPerfCmd /shutdown** option to turn the profiler off and close the profiling data file. The **VSPerfClrEnv /off** command clears the profiling environment variables. + +#### To end a profiling session + +1. Perform one of the following steps to detach the profiler from the target application. + + - Type **VSPerfCmd /detach** + + -or- + + - Close the target application. + +2. Shut down the profiler. Type: + + **VSPerfCmd** [/shutdown](../profiling/shutdown.md) + +3. (Optional) Clear the profiling environment variables. Type: + + **VSPerfClrEnv /off** + +## See Also + [Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md) + [Sampling Method Data Views](../profiling/profiler-sampling-method-data-views.md) + + +