You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PolyglotNotebooksStudy/Docs/多语言笔记.200.工具.ipynb

253 lines
320 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "216d1956",
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"source": [
"多语言笔记,辅助工具类\n",
"===================="
]
},
{
"cell_type": "markdown",
"id": "66906538",
"metadata": {},
"source": [
"## 后端运行信息"
]
},
{
"cell_type": "markdown",
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"source": [
"### .NET Interactive 版本信息"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<table><tbody><tr><td><img src=\"data:image/png;base64, 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
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#!about"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"data": {
"text/html": [
"<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process (dotnet)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>SafeHandle</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Microsoft.Win32.SafeHandles.SafeProcessHandle</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>IsInvalid</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsClosed</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Handle</td><td><div class=\"dni-plaintext\"><pre>2672</pre></div></td></tr><tr><td>BasePriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>ExitCode</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.InvalidOperationException: Process must exit before requested information can be determined.\\r\\n at System.Diagnostics.Process.EnsureState(State state)\\r\\n at lambda_method370(Closure, Process)\\r\\n at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instanc...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>TargetSite</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Void EnsureState(State)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>EnsureState</pre></div></td></tr><tr><td>DeclaringType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>ReflectedType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>MemberType</td><td><span>Method</span></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>100663655</pre></div></td></tr><tr><td>Module</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process.dll</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td><div class=\"dni-plaintext\"><pre>131072</pre></div></td></tr><tr><td>FullyQualifiedName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\9.0.4\\System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>ModuleVersionId</td><td><div class=\"dni-plaintext\"><pre>817e1040-aa21-4df5-b284-760624a60a6f</pre></div></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>ScopeName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Assembly</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>CodeBase</td><td><div class=\"dni-plaintext\"><pre>file:///C:/Program Files/dotnet/shared/Microsoft.NETCore.App/9.0.4/System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>FullName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</pre></div></td></tr><tr><td>EntryPoint</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>DefinedTypes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>Interop</td></tr><tr><td>1</td><td>Interop+Kernel32</td></tr><tr><td>2</td><td>Interop+Kernel32+PROCESS_INFORMATION</td></tr><tr><td>3</td><td>Interop+Kernel32+STARTUPINFO</td></tr><tr><td>4</td><td>Interop+Kernel32+NtModuleInfo</td></tr><tr><td>5</td><td>Interop+Kernel32+ProcessWaitHandle</td></tr><
" at lambda_method370(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>HasExited</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>StartTime</td><td><span>2025-04-21 08:50:39Z</span></td></tr><tr><td>ExitTime</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.InvalidOperationException: Process must exit before requested information can be determined.\\r\\n at System.Diagnostics.Process.EnsureState(State state)\\r\\n at System.Diagnostics.Process.get_ExitTime()\\r\\n at lambda_method373(Closure, Process)\\r\\n at Microsoft.DotNet.Interactive.Format...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>TargetSite</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>Void EnsureState(State)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>EnsureState</pre></div></td></tr><tr><td>DeclaringType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>ReflectedType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>MemberType</td><td><span>Method</span></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>100663655</pre></div></td></tr><tr><td>Module</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process.dll</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td><div class=\"dni-plaintext\"><pre>131072</pre></div></td></tr><tr><td>FullyQualifiedName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\9.0.4\\System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>ModuleVersionId</td><td><div class=\"dni-plaintext\"><pre>817e1040-aa21-4df5-b284-760624a60a6f</pre></div></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>ScopeName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Assembly</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>CodeBase</td><td><div class=\"dni-plaintext\"><pre>file:///C:/Program Files/dotnet/shared/Microsoft.NETCore.App/9.0.4/System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>FullName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</pre></div></td></tr><tr><td>EntryPoint</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>DefinedTypes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>Interop</td></tr><tr><td>1</td><td>Interop+Kernel32</td></tr><tr><td>2</td><td>Interop+Kernel32+PROCESS_INFORMATION</td></tr><tr><td>3</td><td>Interop+Kernel32+STARTUPINFO</td></tr><tr><td>4</td><td>Interop+Kernel32+NtModuleInfo</td></tr><tr><td>5</td><td>Interop+Kernel32+ProcessWaitHandle</td></tr><tr><td>6</td><td>Interop+Kernel32+SECURITY_ATTRIBUTES</td></tr><tr><td>7</td><td>Interop+Kernel32+CPINFOEXW</td></tr><tr><td>8</td><td>Interop+Kernel32+CPINFOEXW+<CodePageName>e__FixedBuffer</td></tr><tr><td>9</td><td>Interop+Kernel32+CPINFOEXW+<DefaultChar>e__FixedBuffer</td></tr><tr><td>10</td><td>Interop+Kernel32+CPINFOEXW+<LeadByte>e__FixedBuffer</td></tr><tr><td>11</td><t
" at System.Diagnostics.Process.get_ExitTime()\r\n",
" at lambda_method373(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>30032</pre></div></td></tr><tr><td>MachineName</td><td><div class=\"dni-plaintext\"><pre>.</pre></div></td></tr><tr><td>MaxWorkingSet</td><td><div class=\"dni-plaintext\"><pre>1413120</pre></div></td></tr><tr><td>MinWorkingSet</td><td><div class=\"dni-plaintext\"><pre>204800</pre></div></td></tr><tr><td>Modules</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.ProcessModule (dotnet.exe)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ModuleName</td><td><div class=\"dni-plaintext\"><pre>dotnet.exe</pre></div></td></tr><tr><td>FileName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\dotnet.exe</pre></div></td></tr><tr><td>BaseAddress</td><td><div class=\"dni-plaintext\"><pre>140698864844800</pre></div></td></tr><tr><td>ModuleMemorySize</td><td><div class=\"dni-plaintext\"><pre>155648</pre></div></td></tr><tr><td>EntryPointAddress</td><td><div class=\"dni-plaintext\"><pre>140698864887376</pre></div></td></tr><tr><td>FileVersionInfo</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>File: C:\\Program Files\\dotnet\\dotnet.exe\\r\\nInternalName: .NET Host\\r\\nOriginalFilename: .NET Host\\r\\nFileVersion: 10,0,25,17105 @Commit: 0a33e18a0bccc10a0c4646dbf5b0fc70cbb3aa44\\r\\nFileDescription: .NET Host\\r\\nProduct: .NET\\r\\nProductVersion: 10.0.0-preview.3.25171...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Comments</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>CompanyName</td><td><div class=\"dni-plaintext\"><pre>Microsoft Corporation</pre></div></td></tr><tr><td>FileBuildPart</td><td><div class=\"dni-plaintext\"><pre>25</pre></div></td></tr><tr><td>FileDescription</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>FileMajorPart</td><td><div class=\"dni-plaintext\"><pre>10</pre></div></td></tr><tr><td>FileMinorPart</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>FileName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\dotnet.exe</pre></div></td></tr><tr><td>FilePrivatePart</td><td><div class=\"dni-plaintext\"><pre>17105</pre></div></td></tr><tr><td>FileVersion</td><td><div class=\"dni-plaintext\"><pre>10,0,25,17105 @Commit: 0a33e18a0bccc10a0c4646dbf5b0fc70cbb3aa44</pre></div></td></tr><tr><td>InternalName</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>IsDebug</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPatched</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPrivateBuild</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPreRelease</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsSpecialBuild</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>Language</td><td><div class=\"dni-plaintext\"><pre>英语(美国)</pre></div></td></tr><tr><td>LegalCopyright</td><td><div class=\"dni-plaintext\"><pre>&#169; Microsoft Corporation. All rights reserved.</pre></div></td></tr><tr><td>LegalTrademarks</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>OriginalFilename</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>PrivateBuild</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>ProductBuildPart</td><td><div class=\"dni-plaintext\"><pre>25</pre></div></td></tr><tr><td>ProductMajorPart</td><td><div class=\"dni-plaintext\"><pre>10</pre></div></td></tr><tr><td>ProductMinorPart</td><td><div class=
" at lambda_method397(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Threads</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.ProcessThread</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>BasePriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>CurrentPriority</td><td><div class=\"dni-plaintext\"><pre>9</pre></div></td></tr><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>18720</pre></div></td></tr><tr><td>PriorityBoostEnabled</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>PriorityLevel</td><td><span>Normal</span></td></tr><tr><td>StartAddress</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>ThreadState</td><td><span>Wait</span></td></tr><tr><td>WaitReason</td><td><span>UserRequest</span></td></tr><tr><td>StartTime</td><td><span>2025-04-21 08:50:39Z</span></td></tr><tr><td>PrivilegedProcessorTime</td><td><span>00:00:00.2187500</span></td></tr><tr><td>TotalProcessorTime</td><td><span>00:00:02.2500000</span></td></tr><tr><td>UserProcessorTime</td><td><span>00:00:02.0312500</span></td></tr><tr><td>Site</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>Container</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>1</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.ProcessThread</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>BasePriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>CurrentPriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>27172</pre></div></td></tr><tr><td>PriorityBoostEnabled</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>PriorityLevel</td><td><span>Normal</span></td></tr><tr><td>StartAddress</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>ThreadState</td><td><span>Wait</span></td></tr><tr><td>WaitReason</td><td><span>UserRequest</span></td></tr><tr><td>StartTime</td><td><span>2025-04-21 08:50:39Z</span></td></tr><tr><td>PrivilegedProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>TotalProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>UserProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>Site</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>Container</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>2</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.ProcessThread</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>BasePriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>CurrentPriority</td><td><div class=\"dni-plaintext\"><pre>8</pre></div></td></tr><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>32568</pre></div></td></tr><tr><td>PriorityBoostEnabled</td><td><div class=\"dni-plaintext\"><pre>True</pre></div></td></tr><tr><td>PriorityLevel</td><td><span>Normal</span></td></tr><tr><td>StartAddress</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>ThreadState</td><td><span>Wait</span></td></tr><tr><td>WaitReason</td><td><span>UserRequest</span></td></tr><tr><td>StartTime</td><td><span>2025-04-21 08:50:39Z</span></td></tr><tr><td>PrivilegedProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>TotalProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>UserProcessorTime</td><td><span>00:00:00</span></td></tr><tr><td>Site</td><td><div
" at lambda_method403(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>StandardOutput</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.InvalidOperationException: StandardOut has not been redirected or the process hasn&#39;t started yet.\\r\\n at System.Diagnostics.Process.get_StandardOutput()\\r\\n at lambda_method404(Closure, Process)\\r\\n at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instan...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>TargetSite</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.IO.StreamReader get_StandardOutput()</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>get_StandardOutput</pre></div></td></tr><tr><td>DeclaringType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>ReflectedType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>MemberType</td><td><span>Method</span></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>100663640</pre></div></td></tr><tr><td>Module</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process.dll</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td><div class=\"dni-plaintext\"><pre>131072</pre></div></td></tr><tr><td>FullyQualifiedName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\9.0.4\\System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>ModuleVersionId</td><td><div class=\"dni-plaintext\"><pre>817e1040-aa21-4df5-b284-760624a60a6f</pre></div></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>ScopeName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Assembly</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>CodeBase</td><td><div class=\"dni-plaintext\"><pre>file:///C:/Program Files/dotnet/shared/Microsoft.NETCore.App/9.0.4/System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>FullName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</pre></div></td></tr><tr><td>EntryPoint</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>DefinedTypes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>Interop</td></tr><tr><td>1</td><td>Interop+Kernel32</td></tr><tr><td>2</td><td>Interop+Kernel32+PROCESS_INFORMATION</td></tr><tr><td>3</td><td>Interop+Kernel32+STARTUPINFO</td></tr><tr><td>4</td><td>Interop+Kernel32+NtModuleInfo</td></tr><tr><td>5</td><td>Interop+Kernel32+ProcessWaitHandle</td></tr><tr><td>6</td><td>Interop+Kernel32+SECURITY_ATTRIBUTES</td></tr><tr><td>7</td><td>Interop+Kernel32+CPINFOEXW</td></tr><tr><td>8</td><td>Interop+Kernel32+CPINFOEXW+<CodePageName>e__FixedBuffer</td></tr><tr><td>9</td><td>Interop+Kernel32+CPINFOEXW+<DefaultChar>e__FixedBuffer</td></tr><tr><td>10</td><td>Interop+Kernel32+CPINFOEXW+<LeadByte>e__FixedBuffer</td></tr><tr><td>11</td><td>Interop+NtDll</td></tr><tr><td>12</td><td>Interop+NtDll+PROCESS_BASIC_INFORMATION</td></tr><tr><td>13</td><td>Interop+N
" at lambda_method404(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>StandardError</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.InvalidOperationException: StandardError has not been redirected.\\r\\n at System.Diagnostics.Process.get_StandardError()\\r\\n at lambda_method405(Closure, Process)\\r\\n at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microso...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>TargetSite</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.IO.StreamReader get_StandardError()</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>get_StandardError</pre></div></td></tr><tr><td>DeclaringType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>ReflectedType</td><td><span><a href=\"https://docs.microsoft.com/dotnet/api/system.diagnostics.process?view=net-7.0\">System.Diagnostics.Process</a></span></td></tr><tr><td>MemberType</td><td><span>Method</span></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>100663641</pre></div></td></tr><tr><td>Module</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process.dll</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>MDStreamVersion</td><td><div class=\"dni-plaintext\"><pre>131072</pre></div></td></tr><tr><td>FullyQualifiedName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\9.0.4\\System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>ModuleVersionId</td><td><div class=\"dni-plaintext\"><pre>817e1040-aa21-4df5-b284-760624a60a6f</pre></div></td></tr><tr><td>MetadataToken</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>ScopeName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Name</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>Assembly</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>CodeBase</td><td><div class=\"dni-plaintext\"><pre>file:///C:/Program Files/dotnet/shared/Microsoft.NETCore.App/9.0.4/System.Diagnostics.Process.dll</pre></div></td></tr><tr><td>FullName</td><td><div class=\"dni-plaintext\"><pre>System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</pre></div></td></tr><tr><td>EntryPoint</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>DefinedTypes</td><td><table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td>0</td><td>Interop</td></tr><tr><td>1</td><td>Interop+Kernel32</td></tr><tr><td>2</td><td>Interop+Kernel32+PROCESS_INFORMATION</td></tr><tr><td>3</td><td>Interop+Kernel32+STARTUPINFO</td></tr><tr><td>4</td><td>Interop+Kernel32+NtModuleInfo</td></tr><tr><td>5</td><td>Interop+Kernel32+ProcessWaitHandle</td></tr><tr><td>6</td><td>Interop+Kernel32+SECURITY_ATTRIBUTES</td></tr><tr><td>7</td><td>Interop+Kernel32+CPINFOEXW</td></tr><tr><td>8</td><td>Interop+Kernel32+CPINFOEXW+<CodePageName>e__FixedBuffer</td></tr><tr><td>9</td><td>Interop+Kernel32+CPINFOEXW+<DefaultChar>e__FixedBuffer</td></tr><tr><td>10</td><td>Interop+Kernel32+CPINFOEXW+<LeadByte>e__FixedBuffer</td></tr><tr><td>11</td><td>Interop+NtDll</td></tr><tr><td>12</td><td>Interop+NtDll+PROCESS_BASIC_INFORMATION</td></tr><tr><td>13</td><td>Interop+Nt
" at lambda_method405(Closure, Process)\r\n",
" at Microsoft.DotNet.Interactive.Formatting.MemberAccessor`1.GetValueOrException(T instance) in D:\\a\\_work\\1\\s\\src\\Microsoft.DotNet.Interactive.Formatting\\MemberAccessor{T}.cs:line 58</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>WorkingSet64</td><td><div class=\"dni-plaintext\"><pre>526495744</pre></div></td></tr><tr><td>WorkingSet</td><td><div class=\"dni-plaintext\"><pre>526495744</pre></div></td></tr><tr><td>SynchronizingObject</td><td><div class=\"dni-plaintext\"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>MainModule</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>System.Diagnostics.ProcessModule (dotnet.exe)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>ModuleName</td><td><div class=\"dni-plaintext\"><pre>dotnet.exe</pre></div></td></tr><tr><td>FileName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\dotnet.exe</pre></div></td></tr><tr><td>BaseAddress</td><td><div class=\"dni-plaintext\"><pre>140698864844800</pre></div></td></tr><tr><td>ModuleMemorySize</td><td><div class=\"dni-plaintext\"><pre>155648</pre></div></td></tr><tr><td>EntryPointAddress</td><td><div class=\"dni-plaintext\"><pre>140698864887376</pre></div></td></tr><tr><td>FileVersionInfo</td><td><details class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>File: C:\\Program Files\\dotnet\\dotnet.exe\\r\\nInternalName: .NET Host\\r\\nOriginalFilename: .NET Host\\r\\nFileVersion: 10,0,25,17105 @Commit: 0a33e18a0bccc10a0c4646dbf5b0fc70cbb3aa44\\r\\nFileDescription: .NET Host\\r\\nProduct: .NET\\r\\nProductVersion: 10.0.0-preview.3.25171...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Comments</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>CompanyName</td><td><div class=\"dni-plaintext\"><pre>Microsoft Corporation</pre></div></td></tr><tr><td>FileBuildPart</td><td><div class=\"dni-plaintext\"><pre>25</pre></div></td></tr><tr><td>FileDescription</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>FileMajorPart</td><td><div class=\"dni-plaintext\"><pre>10</pre></div></td></tr><tr><td>FileMinorPart</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>FileName</td><td><div class=\"dni-plaintext\"><pre>C:\\Program Files\\dotnet\\dotnet.exe</pre></div></td></tr><tr><td>FilePrivatePart</td><td><div class=\"dni-plaintext\"><pre>17105</pre></div></td></tr><tr><td>FileVersion</td><td><div class=\"dni-plaintext\"><pre>10,0,25,17105 @Commit: 0a33e18a0bccc10a0c4646dbf5b0fc70cbb3aa44</pre></div></td></tr><tr><td>InternalName</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>IsDebug</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPatched</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPrivateBuild</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsPreRelease</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>IsSpecialBuild</td><td><div class=\"dni-plaintext\"><pre>False</pre></div></td></tr><tr><td>Language</td><td><div class=\"dni-plaintext\"><pre>英语(美国)</pre></div></td></tr><tr><td>LegalCopyright</td><td><div class=\"dni-plaintext\"><pre>&#169; Microsoft Corporation. All rights reserved.</pre></div></td></tr><tr><td>LegalTrademarks</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>OriginalFilename</td><td><div class=\"dni-plaintext\"><pre>.NET Host</pre></div></td></tr><tr><td>PrivateBuild</td><td><div class=\"dni-plaintext\"><pre></pre></div></td></tr><tr><td>ProductBuildPart</td><td><div class=\"dni-plaintext\"><pre>25</pre></div></td></tr><tr><td>ProductMajorPart</td><td><div class=\"dni-plaintext\"><pre>10</pre></div></td></tr><tr><td>ProductMinorPart</td><td><div class=\"dni-plaintext\"><pre>0</pre></div></td></tr><tr><td>ProductName</td><td><div class=\"dni-plaintext\"><pre>.NET</pre></div></td></tr><tr><td>Produc
".dni-code-hint {\r\n",
" font-style: italic;\r\n",
" overflow: hidden;\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview {\r\n",
" white-space: nowrap;\r\n",
"}\r\n",
".dni-treeview td {\r\n",
" vertical-align: top;\r\n",
" text-align: start;\r\n",
"}\r\n",
"details.dni-treeview {\r\n",
" padding-left: 1em;\r\n",
"}\r\n",
"table td {\r\n",
" text-align: start;\r\n",
"}\r\n",
"table tr { \r\n",
" vertical-align: top; \r\n",
" margin: 0em 0px;\r\n",
"}\r\n",
"table tr td pre \r\n",
"{ \r\n",
" vertical-align: top !important; \r\n",
" margin: 0em 0px !important;\r\n",
"} \r\n",
"table th {\r\n",
" text-align: start;\r\n",
"}\r\n",
"</style>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"//获取运行时信息\n",
"{\n",
" //当前进程信息\n",
" System.Diagnostics.Process.GetCurrentProcess().Display();\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "3e5b5a8d",
"metadata": {},
"source": [
"## 路径工具:显示 `Polyglot Notebooks`执行时的各种路径"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6393976b",
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Application.ExecutablePath => Application.ExecutablePath 只适用于WinForm\r\n",
"Application.StartupPath => Application.StartupPath 只适用于WinForm\r\n",
"AppContext.BaseDirectory => C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet-interactive\\1.0.617701\\tools\\net9.0\\any\\\r\n",
"AppDomain.CurrentDomain.BaseDirectory => C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet-interactive\\1.0.617701\\tools\\net9.0\\any\\\r\n",
"AppDomain.CurrentDomain.SetupInformation.ApplicationBase => C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet-interactive\\1.0.617701\\tools\\net9.0\\any\\\r\n",
"Process.GetCurrentProcess().MainModule.FileName => C:\\Program Files\\dotnet\\dotnet.exe\r\n",
"Environment.CurrentDirectory => c:\\Users\\ruyu\\Desktop\\多语言笔记学习\\Docs\r\n",
"Environment.GetCommandLineArgs()[0] => C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet-interactive\\1.0.617701\\tools\\net9.0\\any\\Microsoft.DotNet.Interactive.App.dll\r\n",
"Directory.GetCurrentDirectory => c:\\Users\\ruyu\\Desktop\\多语言笔记学习\\Docs\r\n",
"Assembly.GetExecutingAssembly().Location => \r\n",
"Assembly.GetEntryAssembly().Location => C:\\Users\\ruyu\\.nuget\\packages\\microsoft.dotnet-interactive\\1.0.617701\\tools\\net9.0\\any\\Microsoft.DotNet.Interactive.App.dll\r\n",
"Assembly.GetExecutingAssembly().CodeBase => file:///C:/Program Files/dotnet/shared/Microsoft.NETCore.App/9.0.4/System.Private.CoreLib.dll\r\n",
"Assembly.GetEntryAssembly().CodeBase => file:///C:/Users/ruyu/.nuget/packages/microsoft.dotnet-interactive/1.0.617701/tools/net9.0/any/Microsoft.DotNet.Interactive.App.dll\r\n",
"\r\n"
]
}
],
"source": [
"using System;\n",
"using System.IO;\n",
"using System.Threading;\n",
"using System.Threading.Tasks;\n",
"using System.Diagnostics;\n",
"using System.Reflection;\n",
"\n",
"//查看各种程序路径\n",
"{\n",
" var pathDic = new Dictionary<string, (string desc, string path)>() \n",
" {\n",
" //当前运行的exe的完整路径包含exe文件名只用于WinForm\n",
" {\"Application.ExecutablePath\",(\"程序集基完整路径(仅WinForm)\", \"Application.ExecutablePath 只适用于WinForm\") },\n",
"\n",
" //程序的启动路径只用于WinForm\n",
" {\"Application.StartupPath\",(\"程序集启动路径(仅WinForm)\", \"Application.StartupPath 只适用于WinForm\") },\n",
"\n",
" //当前执行的exe或启动项目的路径通过AppContext\n",
" {\"AppContext.BaseDirectory\",(\"执行或启动路径\", AppContext.BaseDirectory) }, \n",
"\n",
" //当前执行的exe的目录不包含exe名使用AppDomain\n",
" {\"AppDomain.CurrentDomain.BaseDirectory\",(\"程序集解析程序用于探测程序集的基目录\", AppDomain.CurrentDomain.BaseDirectory) }, \n",
"\n",
" //程序安装或启动基目录 包含应用程序的目录的名称\n",
" {\"AppDomain.CurrentDomain.SetupInformation.ApplicationBase\",(\"程序安装或启动基目录\", AppDomain.CurrentDomain.SetupInformation.ApplicationBase) }, \n",
"\n",
" //当前进程的主模块路径包含exe名\n",
" {\"Process.GetCurrentProcess().MainModule.FileName\",(\"当前进程的主模块路径\", Process.GetCurrentProcess()?.MainModule?.FileName) }, \n",
"\n",
" //环境变量:用户当前工作目录的完整限定路径\n",
" {\"Environment.CurrentDirectory\",(\"用户当前工作目录的完整限定路径\", Environment.CurrentDirectory) }, \n",
"\n",
" //环境变量当前exe的完整路径包含exe名通过命令行参数\n",
" {\"Environment.GetCommandLineArgs()[0]\",(\"当前exe的完整路径\", Environment.GetCommandLineArgs()[0]) }, \n",
"\n",
" //当前工作目录的路径(可变)\n",
" {\"Directory.GetCurrentDirectory\",(\"当前工作目录的路径(可变)\", Directory.GetCurrentDirectory()) },\n",
" \n",
" //当前Assembly的加载路径包含dll或exe名\n",
" {\"Assembly.GetExecutingAssembly().Location\",(\"当前Assembly的加载路径\", Assembly.GetExecutingAssembly().Location) },\n",
"\n",
" //入口程序集的路径\n",
" {\"Assembly.GetEntryAssembly().Location\",(\"入口程序集的路径\", Assembly.GetEntryAssembly()?.Location) },\n",
"\n",
" //已过时当前程序集的CodeBase路径可能为file URI格式\n",
" {\"Assembly.GetExecutingAssembly().CodeBase\",(\"当前程序集的CodeBase路径\", Assembly.GetExecutingAssembly()?.CodeBase) },\n",
"\n",
" //已过时入口程序集的CodeBase路径可能为file URI格式\n",
" {\"Assembly.GetEntryAssembly().CodeBase\",(\"入口程序集的CodeBase路径\", Assembly.GetEntryAssembly()?.CodeBase) },\n",
" };\n",
"\n",
" var message = string.Empty;\n",
" foreach (var item in pathDic)\n",
" {\n",
" message += $\"{item.Key} => {item.Value.path}{Environment.NewLine}\";\n",
" }\n",
"\n",
" Console.WriteLine(message);\n",
"}"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"languageName": "csharp",
"name": "csharp"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}