diff --git a/Docs/0.目录结构.ipynb b/Docs/0.目录结构.ipynb new file mode 100644 index 0000000..20d93ce --- /dev/null +++ b/Docs/0.目录结构.ipynb @@ -0,0 +1,57 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ca0f6117", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "目录结构\n", + "========" + ] + }, + { + "cell_type": "markdown", + "id": "5330fed8", + "metadata": {}, + "source": [ + "学习项目的目录结构及简要说明!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "outputs": [], + "source": [] + } + ], + "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 +} diff --git a/Docs/1.0.项目管理.ipynb b/Docs/1.0.项目管理.ipynb new file mode 100644 index 0000000..5d954ab --- /dev/null +++ b/Docs/1.0.项目管理.ipynb @@ -0,0 +1,362 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b96595a0", + "metadata": { + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "管理相关项目\n", + "===========" + ] + }, + { + "cell_type": "markdown", + "id": "4b3b657a", + "metadata": {}, + "source": [ + "## 编译并启动项目" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "846f306a", + "metadata": { + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\HttpClientStudy.Model.csproj (用时 1.72 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\HttpClientStudy.Config.csproj (用时 2.09 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\HttpClientStudy.Core.csproj (用时 2.45 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Service\\HttpClientStudy.Service.csproj (用时 2.46 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.csproj (用时 2.45 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebClient\\HttpClientStudy.WebClient.csproj (用时 2.46 秒)。\n", + " 已还原 C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.UnitTest\\HttpClientStudy.UnitTest.csproj (用时 2.46 秒)。\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Debug\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Debug\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\bin\\Debug\\net8.0\\HttpClientStudy.Core.dll\n", + " HttpClientStudy.Service -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Service\\bin\\Debug\\net8.0\\HttpClientStudy.Service.dll\n", + " HttpClientStudy.WebClient -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebClient\\bin\\Debug\\net8.0\\HttpClientStudy.WebClient.dll\n", + " HttpClientStudy.WebApp -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebApp\\bin\\Debug\\net8.0\\HttpClientStudy.WebApp.dll\n", + " HttpClientStudy.UnitTest -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.UnitTest\\bin\\Debug\\net8.0\\HttpClientStudy.UnitTest.dll\n", + "\n", + "已成功生成。\n", + " 0 个警告\n", + " 0 个错误\n", + "\n", + "已用时间 00:00:36.54\n" + ] + } + ], + "source": [ + "# 编译整个解决方案\n", + "dotnet build ..\\HttpClientStudy.sln" + ] + }, + { + "cell_type": "markdown", + "id": "1decd98c", + "metadata": {}, + "source": [ + "## 发布项目" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6d436074", + "metadata": { + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Release\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Config\\\n", + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Release\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Model\\\n", + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Release\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Release\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\bin\\Release\\net8.0\\HttpClientStudy.Core.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Core\\\n", + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Release\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Release\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\bin\\Release\\net8.0\\HttpClientStudy.Core.dll\n", + " HttpClientStudy.Service -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Service\\bin\\Release\\net8.0\\HttpClientStudy.Service.dll\n", + " HttpClientStudy.Service -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.Service\\\n", + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Release\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Release\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\bin\\Release\\net8.0\\HttpClientStudy.Core.dll\n", + " HttpClientStudy.Service -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Service\\bin\\Release\\net8.0\\HttpClientStudy.Service.dll\n", + " HttpClientStudy.WebApp -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebApp\\bin\\Release\\net8.0\\HttpClientStudy.WebApp.dll\n", + " HttpClientStudy.WebApp -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebApp\\\n", + "适用于 .NET MSBuild 版本 17.8.22+bfbb05667\n", + " Determining projects to restore...\n", + " 所有项目均是最新的,无法还原。\n", + " HttpClientStudy.Model -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Model\\bin\\Release\\net8.0\\HttpClientStudy.Model.dll\n", + " HttpClientStudy.Config -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Config\\bin\\Release\\net6.0\\HttpClientStudy.Config.dll\n", + " HttpClientStudy.Core -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Core\\bin\\Release\\net8.0\\HttpClientStudy.Core.dll\n", + " HttpClientStudy.Service -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.Service\\bin\\Release\\net8.0\\HttpClientStudy.Service.dll\n", + " HttpClientStudy.WebClient -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\HttpClientStudy.WebClient\\bin\\Release\\net8.0\\HttpClientStudy.WebClient.dll\n", + " HttpClientStudy.WebClient -> C:\\Users\\ruyu\\Desktop\\HttpClientStudy\\Docs\\Publish\\HttpClientStudy.WebClient\\\n", + "发布结束!\n" + ] + } + ], + "source": [ + "# 可以发布整个项目,但要发布到默认目录下,指定输出目录的话,会把所有项目都发布到一个目录,造成混乱。\n", + "# dotnet publish ..\\HttpClientStudy.sln\n", + "\n", + "# 分项目发布到Docs目录下\n", + "dotnet publish ..\\HttpClientStudy.Config\\HttpClientStudy.Config.csproj -c Release -o .\\Publish\\HttpClientStudy.Config\n", + "dotnet publish ..\\HttpClientStudy.Model\\HttpClientStudy.Model.csproj -c Release -o .\\Publish\\HttpClientStudy.Model\n", + "dotnet publish ..\\HttpClientStudy.Core\\HttpClientStudy.Core.csproj -c Release -o .\\Publish\\HttpClientStudy.Core\n", + "dotnet publish ..\\HttpClientStudy.Service\\HttpClientStudy.Service.csproj -c Release -o .\\Publish\\HttpClientStudy.Service\n", + "dotnet publish ..\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.csproj -c Release -o .\\Publish\\HttpClientStudy.WebApp\n", + "dotnet publish ..\\HttpClientStudy.WebClient\\HttpClientStudy.WebClient.csproj -c Release -o .\\Publish\\HttpClientStudy.WebClient\n", + "\n", + "Write-Host \"发布结束!\"" + ] + }, + { + "cell_type": "markdown", + "id": "2c600afa", + "metadata": {}, + "source": [ + "## 启动WebApi" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f2b6616", + "metadata": { + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [], + "source": [ + "# 编译并启动WebApi项目\n", + "Start-Process -FilePath dotnet -ArgumentList \"run --project ..\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.csproj\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7eaf7018", + "metadata": { + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [], + "source": [ + "#启动已发布的WebApi项目\n", + "Start-Process -FilePath \"Publish\\HttpClientStudy.WebApp\\HttpClientStudy.WebApp.exe\"" + ] + }, + { + "cell_type": "markdown", + "id": "4067f4b5", + "metadata": {}, + "source": [ + "## 关闭WebApi" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae775f96", + "metadata": { + "polyglot_notebook": { + "kernelName": "pwsh" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " $WebAppProcName =\"HttpClientStudy.WebApp.exe\";\n", + " $WebAppProc = Get-Process $WebAppProcName -ErrorAction Ignore\n", + " if($null -eq $WebAppProc)\n", + " {\n", + " Write-Host \"进程没有找到,可能已经退出\"\n", + " }\n", + " else {\n", + " $WebAppProc.Kill();\n", + " Write-Host \"$WebAppProcName 进程已退出\"\n", + " }\n", + "\n" + ] + } + ], + "source": [ + "# 关闭项目进程\n", + "{\n", + " $WebAppProcName =\"HttpClientStudy.WebApp\";\n", + " $WebAppProc = Get-Process $WebAppProcName -ErrorAction Ignore\n", + " if($null -eq $WebAppProc)\n", + " {\n", + " Write-Host \"进程没有找到,可能已经退出\"\n", + " }\n", + " else {\n", + " $WebAppProc.Kill();\n", + " Write-Host \"$WebAppProcName 进程已退出\"\n", + " }\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "a4ef55bc", + "metadata": {}, + "source": [ + "## 查看应用各种路径" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e6f752c", + "metadata": {}, + "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\\HttpClientStudy\\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\\HttpClientStudy\\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() \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 +} diff --git a/Docs/1.0项目管理.dib b/Docs/1.0项目管理.dib deleted file mode 100644 index de9f77c..0000000 --- a/Docs/1.0项目管理.dib +++ /dev/null @@ -1,135 +0,0 @@ -#!meta - -{"kernelInfo":{"defaultKernelName":"csharp","items":[{"name":"csharp","languageName":"csharp"},{"name":"fsharp","languageName":"F#","aliases":["f#","fs"]},{"name":"html","languageName":"HTML"},{"name":"http","languageName":"HTTP"},{"name":"javascript","languageName":"JavaScript","aliases":["js"]},{"name":"mermaid","languageName":"Mermaid"},{"name":"pwsh","languageName":"PowerShell","aliases":["powershell"]},{"name":"value"}]}} - -#!markdown - -# 管理相关项目 - -#!markdown - -## 编译并启动项目 - -#!pwsh - -# 编译整个解决方案 -dotnet build ..\HttpClientStudy.sln - -#!markdown - -## 发布项目 - -#!pwsh - -# 可以发布整个项目,但要发布到默认目录下,指定输出目录的话,会把所有项目都发布到一个目录,造成混乱。 -# dotnet publish ..\HttpClientStudy.sln - -# 分项目发布到Docs目录下 -dotnet publish ..\HttpClientStudy.Config\HttpClientStudy.Config.csproj -c Release -o .\Publish\HttpClientStudy.Config -dotnet publish ..\HttpClientStudy.Model\HttpClientStudy.Model.csproj -c Release -o .\Publish\HttpClientStudy.Model -dotnet publish ..\HttpClientStudy.Core\HttpClientStudy.Core.csproj -c Release -o .\Publish\HttpClientStudy.Core -dotnet publish ..\HttpClientStudy.Service\HttpClientStudy.Service.csproj -c Release -o .\Publish\HttpClientStudy.Service -dotnet publish ..\HttpClientStudy.WebApp\HttpClientStudy.WebApp.csproj -c Release -o .\Publish\HttpClientStudy.WebApp -dotnet publish ..\HttpClientStudy.WebClient\HttpClientStudy.WebClient.csproj -c Release -o .\Publish\HttpClientStudy.WebClient - -Write-Host "发布结束!" - -#!markdown - -## 启动WebApi - -#!pwsh - -# 编译并启动WebApi项目 -Start-Process -FilePath dotnet -ArgumentList "run --project ..\HttpClientStudy.WebApp\HttpClientStudy.WebApp.csproj" - -#!pwsh - -#启动已发布的WebApi项目 -Start-Process -FilePath "Publish\HttpClientStudy.WebApp\HttpClientStudy.WebApp.exe" - -#!markdown - -## 关闭WebApi - -#!pwsh - -# 关闭项目进程 -{ - $WebAppProcName ="HttpClientStudy.WebApp"; - $WebAppProc = Get-Process $WebAppProcName -ErrorAction Ignore - if($null -eq $WebAppProc) - { - Write-Host "进程没有找到,可能已经退出" - } - else { - $WebAppProc.Kill(); - Write-Host "$WebAppProcName 进程已退出" - } -} - -#!markdown - -## 查看应用各种路径 - -#!csharp - -using System; -using System.IO; -using System.Threading; -using System.Threading.Tasks; -using System.Diagnostics; -using System.Reflection; - -//查看各种程序路径 -{ - var pathDic = new Dictionary() - { - //当前运行的exe的完整路径,包含exe文件名,只用于WinForm - {"Application.ExecutablePath",("程序集基完整路径(仅WinForm)", "Application.ExecutablePath 只适用于WinForm") }, - - //程序的启动路径:只用于WinForm - {"Application.StartupPath",("程序集启动路径(仅WinForm)", "Application.StartupPath 只适用于WinForm") }, - - //当前执行的exe或启动项目的路径,通过AppContext - {"AppContext.BaseDirectory",("执行或启动路径", AppContext.BaseDirectory) }, - - //当前执行的exe的目录,不包含exe名,使用AppDomain - {"AppDomain.CurrentDomain.BaseDirectory",("程序集解析程序用于探测程序集的基目录", AppDomain.CurrentDomain.BaseDirectory) }, - - //程序安装或启动基目录 包含应用程序的目录的名称 - {"AppDomain.CurrentDomain.SetupInformation.ApplicationBase",("程序安装或启动基目录", AppDomain.CurrentDomain.SetupInformation.ApplicationBase) }, - - //当前进程的主模块路径,包含exe名 - {"Process.GetCurrentProcess().MainModule.FileName",("当前进程的主模块路径", Process.GetCurrentProcess()?.MainModule?.FileName) }, - - //环境变量:用户当前工作目录的完整限定路径 - {"Environment.CurrentDirectory",("用户当前工作目录的完整限定路径", Environment.CurrentDirectory) }, - - //环境变量:当前exe的完整路径,包含exe名,通过命令行参数 - {"Environment.GetCommandLineArgs()[0]",("当前exe的完整路径", Environment.GetCommandLineArgs()[0]) }, - - //当前工作目录的路径(可变) - {"Directory.GetCurrentDirectory",("当前工作目录的路径(可变)", Directory.GetCurrentDirectory()) }, - - //当前Assembly的加载路径,包含dll或exe名 - {"Assembly.GetExecutingAssembly().Location",("当前Assembly的加载路径", Assembly.GetExecutingAssembly().Location) }, - - //入口程序集的路径 - {"Assembly.GetEntryAssembly().Location",("入口程序集的路径", Assembly.GetEntryAssembly()?.Location) }, - - //已过时:当前程序集的CodeBase路径,可能为file URI格式 - {"Assembly.GetExecutingAssembly().CodeBase",("当前程序集的CodeBase路径", Assembly.GetExecutingAssembly()?.CodeBase) }, - - //已过时:入口程序集的CodeBase路径,可能为file URI格式 - {"Assembly.GetEntryAssembly().CodeBase",("入口程序集的CodeBase路径", Assembly.GetEntryAssembly()?.CodeBase) }, - }; - - var message = string.Empty; - foreach (var item in pathDic) - { - message += $"{item.Key} => {item.Value.path}{Environment.NewLine}"; - } - - Console.WriteLine(message); -} diff --git a/Docs/学习.ps1 b/Docs/练习测试.ps1 similarity index 100% rename from Docs/学习.ps1 rename to Docs/练习测试.ps1 diff --git a/Docs/说明.md b/Docs/项目说明.md similarity index 100% rename from Docs/说明.md rename to Docs/项目说明.md