<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      將 SmartAssembly 與單文件可執行文件一起使用 (.NET Core 6)

      .NET Core 6引入了創建單文件可執行文件的功能。這只允許分發一個應用程序文件,因為所有配置和依賴項都包含在二進制文件本身中。

      該功能為依賴項嵌入提供了一種本機方法,這在發布生成數百個程序集的獨立應用程序時最有益。它可用于依賴于框架或自包含的應用程序,但在這兩種情況下都需要設置運行時標識符以針對特定環境和位數。

      開始

      首先,讓我們看看發布 .NET Core 應用程序的常規過程是什么樣的。

      假設我們有一個名為 ConsoleApp 的 .NET Core 6 應用程序,由以下項目文件定義:

      1. <Project Sdk="Microsoft.NET.Sdk">
      2. <PropertyGroup>
      3. <OutputType>Exe</OutputType>
      4. <TargetFramework>netcoreapp6</TargetFramework>
      5. </PropertyGroup>
      6. </Project>

      要發布此應用程序,我們將使用以下命令:

      1. dotnet publish .\ConsoleApp.csproj -c Release -r win-x64

      上面的命令將在“發布”模式下構建應用程序,然后發布為自包含并面向 Windows 64 位系統。所有依賴項(包括 .NET Core 框架程序集)和配置都將復制到已發布的目錄中。

      發布完成后,轉到輸出目錄(對于上面的應用程序,這將是 \ConsoleApp\bin\Release\netcoreapp6\win-x64\publish\)。注意目錄中存在多少個文件。

      發布獨立 .NET Core 應用程序的過程可以可視化如下:

      使用單文件可執行文件

      現在,讓我們將應用程序發布為單個文件。我們需要做的就是添加一個值設置為 true 的 PublishSingleFile 屬性。

      1. <Project Sdk="Microsoft.NET.Sdk">
      2. <PropertyGroup>
      3. <OutputType>Exe</OutputType>
      4. <TargetFramework>netcoreapp6</TargetFramework>
      5. <PublishSingleFile>true</PublishSingleFile> <!-- add this line -->
      6. </PropertyGroup>
      7. </Project>

      讓我們再次發出發布命令:

      1. dotnet publish .\ConsoleApp.csproj -c Release -r win-x64

      完成此過程后,導航到已發布的目錄(上述應用的 \ConsoleApp\bin\Release\netcoreapp6\win-x64\publish\)。您應該只看到 1 個.exe文件和一個 .pdb 文件(可選)。

      讓我們看看啟用單文件后發布過程有何變化:

      集成智能裝配

      對于最后一步,讓我們在程序集捆綁到單文件可執行文件之前保護它。

      SmartAssembly 將在生成應用程序之后執行,但在發布并捆綁到單個文件之前執行。如下圖所示:

      步驟 1:創建智能程序集項目

      1. 打開智能裝配。
      2. 單擊“新建項目”。
      3. 單擊“瀏覽程序集”。
      4. 導航到應用程序的輸出目錄,選擇適當的程序集(對于上面的應用程序,它將是:\ConsoleApp\bin\Release\netcoreapp6\win-x64\ConsoleApp.dll)并打開
      5. 單擊設置目的地。
      6. 導航到應用程序的 \obj\ 目錄(對于上面的應用程序,它將是:\ConsoleApp\obj\Release\netcoreapp6\win-x64\ConsoleApp.dll)并保存。如果文件已存在,請單擊“”進行覆蓋。
      7. 根據需要配置項目。啟用應用程序可能需要的任何保護。
      8. 單擊保存以保存項目。建議將項目保存在與Visual Studio的項目文件相同的位置,名稱相同(對于上面的應用,它將是:\ConsoleApp\ConsoleApp.saproj)。

      保護單文件程序集時,不應使用“依賴項合并”和“依賴項嵌入”。合并或嵌入程序集可能會導致意外行為,不建議用于此類應用程序。

      步驟 2:將智能程序集集成到發布過程中

      1. 在 Visual Studio 中打開應用程序的項目。
      2. 右鍵單擊項目名稱,然后選擇“管理 NuGet 包...”
      3. 切換到瀏覽選項卡。
      4. 鍵入 RedGate.SmartAssembly.MSBuild,然后單擊它旁邊的安裝。

      就是這樣!執行上述步驟后,項目文件應如下所示:

      1. <Project Sdk="Microsoft.NET.Sdk">
      2. <PropertyGroup>
      3. <OutputType>Exe</OutputType>
      4. <TargetFramework>netcoreapp6</TargetFramework>
      5. <PublishSingleFile>true</PublishSingleFile>
      6. </PropertyGroup>
      7.  
      8. <ItemGroup>
      9. <PackageReference Include="RedGate.SmartAssembly.MSBuild" Version="8.1.2.4975">
      10. <PrivateAssets>all</PrivateAssets>
      11. <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      12. </PackageReference>
      13. </ItemGroup>
      14. </Project>

      現在讓我們再次發出發布命令:

      1. dotnet publish .\ConsoleApp.csproj -c Release -r win-x64

      如果要運行同一項目的多個連續生成,則應在每次生成之前或之后清理項目。由于 SmartAssembly 將程序集模糊處理到 \obj\ 目錄中,因此下次生成命令可能會選取經過模糊處理的版本,從而導致雙重模糊處理和其他意外結果。

      要清理項目,請手動刪除 \obj\ 目錄或發出以下命令(使用用于發布的相同配置和運行時標識符):

      dotnet clean .\ConsoleApp.csproj -c Release -r win-x64

      如果一切順利,您應該會在命令行中看到其他輸出消息,確認 SmartAssembly 已成功保護您的應用程序(為清楚起見,縮短了路徑):

      Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
      Copyright (C) Microsoft Corporation. All rights reserved.

      Restore completed in 206.38 ms for C:\[..]\ConsoleApp\ConsoleApp.csproj.
      ConsoleApp -> C:\[..]\ConsoleApp\bin\Release\netcoreapp6\win-x64\ConsoleApp.dll
      Executing SmartAssembly from: C:\PROGRA~1\Red Gate\SmartAssembly 8\SmartAssembly.com
      Using project: C:\[..]\ConsoleApp\ConsoleApp.saproj
      SmartAssembly v8.1.2.4975 Personal
      Copyright c Red Gate Software Ltd 2005-2020
      Loading project C:\[..]\ConsoleApp\ConsoleApp.saproj
      Input=C:\[..]\ConsoleApp\bin\Release\netcoreapp3.1\win-x64\ConsoleApp.dll
      Loading...
      Starting...
      Analyzing...
      Preparing...
      Creating assembly...
      Copying additional files...
      OK

      ConsoleApp -> C:\[..]\ConsoleApp\bin\Release\netcoreapp3.1\win-x64\publish\

      posted @ 2023-06-27 12:08  小螺軟件寶  閱讀(546)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费看黄色亚洲一区久久| 成人永久性免费在线视频| 揭西县| 久久国产成人高清精品亚洲| 午夜福利在线观看6080| 中文字幕亚洲精品人妻| 国产地址二永久伊甸园| 国产精成人品日日拍夜夜免费| 九九热视频免费在线播放| 真实单亲乱l仑对白视频| 亚洲熟妇无码av另类vr影视| 大洼县| 白丝乳交内射一二三区| 人妻无码中文字幕| 少妇愉情理伦片丰满丰满午夜 | 国产一卡2卡3卡4卡网站精品| 国产精品国产亚洲区久久| 中文字幕不卡在线播放| 女人喷水高潮时的视频网站| 欧美成人免费全部| 不卡视频在线一区二区三区| 日韩精品中文字幕有码| 亚洲精品综合网二三区| 亚洲欧洲日产国码久在线| 日本中文字幕在线播放| 色欧美片视频在线观看| 聂荣县| 亚洲成人动漫av在线| 久久这里只精品国产2| 中文字幕亚洲综合久久2020| 夜夜添狠狠添高潮出水| 国产亚洲精品aaaa片app| 日韩一区二区三区理伦片| 午夜通通国产精品福利| 欧美日韩精品一区二区三区不卡| 久久久无码精品亚洲日韩蜜桃| 极品无码国模国产在线观看| 国产91麻豆视频免费看| 苍井空毛片精品久久久| 成人3D动漫一区二区三区| 久久青青草原国产精品最新片|