首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用.NET核心3.1创建单个依赖于框架的exe文件,并仅包含第三方dll

使用.NET Core 3.1创建单个依赖于框架的exe文件,并仅包含第三方dll的方法如下:

  1. 首先,确保已经安装了.NET Core 3.1 SDK,并且已经配置好了开发环境。
  2. 打开命令行工具,进入项目的根目录。
  3. 使用以下命令创建一个新的.NET Core控制台应用程序:
  4. 使用以下命令创建一个新的.NET Core控制台应用程序:
  5. 在项目的根目录中创建一个名为 "lib" 的文件夹,用于存放第三方dll文件。
  6. 将需要的第三方dll文件复制到 "lib" 文件夹中。
  7. 打开项目文件夹中的 ".csproj" 文件,添加以下代码块到 <PropertyGroup> 中:
  8. 打开项目文件夹中的 ".csproj" 文件,添加以下代码块到 <PropertyGroup> 中:
  9. 这些配置将使得生成的exe文件包含所有的依赖项,并且只生成适用于Windows 64位操作系统的可执行文件。
  10. 在命令行中执行以下命令,将项目发布为单个依赖于框架的可执行文件:
  11. 在命令行中执行以下命令,将项目发布为单个依赖于框架的可执行文件:
  12. 这将在项目的 "bin/Release/netcoreapp3.1/win-x64/publish" 文件夹中生成可执行文件。
  13. 在生成的可执行文件所在的文件夹中,可以找到一个名为 "yourprojectname.runtimeconfig.json" 的文件,将其复制到 "lib" 文件夹中。
  14. 最后,将 "lib" 文件夹中的所有第三方dll文件复制到生成的可执行文件所在的文件夹中。

现在,你就可以运行生成的可执行文件,它将包含所有的依赖项,并且只依赖于.NET Core 3.1框架。

注意:以上方法是使用.NET Core 3.1创建单个依赖于框架的exe文件的一种方式,具体的步骤可能会因项目的结构和需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET Core 应用程序三种部署方式

由于已存在 .NET Core,因此应用在 .NET Core 安装程序间也是可移植。 应用包含其自己代码和任何位于 .NET Core 库外第三方依赖项。...FDD 包含可通过在命令行中使用 dotnet 实用程序启动 .dll 文件。 例如,dotnet app.dll 就可以运行一个名为 app 应用程序。 独立部署。...SCD 包括一个可执行文件(如 Windows 平台上名为 app 应用程序 app.exe ),它是特定于平台 .NET Core 主机重命名版本,还包括一个 .dll 文件(如 app.dll...这些部署运行仍依赖于现有的 .NET Core 共享系统级版本。 与 SCD 不同,应用包含代码和任何位于 .NET Core 库外第三方依赖项。 FDE 生成在目标平台上运行可执行文件。...依赖框架部署 (FDD) 对于 FDD,部署应用程序和第三方依赖项。 应用将使用目标系统上存在 .NET Core 版本。

1.8K40

.NET Core部署中你不了解框架依赖与独立部署

由于已存在 .NET Core,因此应用在 .NET Core 安装程序间也是可移植。 应用包含其自己代码和任何位于 .NET Core 库外第三方依赖项。...FDD 包含可通过在命令行中使用 dotnet 实用程序启动 .dll 文件。 例如,dotnet app.dll 就可以运行一个名为 app 应用程序。...SCD 包括一个可执行文件(如 Windows 平台上名为 app 应用程序 app.exe),它是特定于平台 .NET Core 主机重命名版本,还包括一个 .dll 文件(如 app.dll...不包含第三方依赖框架依赖部署 为项目创建一个目录,并将其设为当前目录 在命令行中,键入 dotnet new console 以创建 C# 控制台项目 在编辑器中打开 Program.cs 文件...包含第三方依赖项依赖框架部署 要使用一个或多个第三方依赖项来部署依赖框架部署,需要这些依赖项都可供项目使用

2K20
  • .NET Glossary

    由于 AOT 上下文是整个应用程序,因此 AOT 编译器还进行跨模块链接和全程序分析,这意味着遵循所有引用生成单个可执行文件。 请参阅CoreRT和.NET Native。...请参阅ASP.NET Core 文档。 部件 一个.dll或.exe文件,其中可以包含可由应用程序或其他程序集调用 API 集合。 程序集可能包括接口、类、结构、枚举和委托等类型。...它删除了未使用代码花更多时间对其进行优化。它从库中提取代码并将它们合并到可执行文件中。结果是代表整个应用程序单个模块。 UWP 是 .NET Native 支持应用程序框架。...该.ZIP文件具有.nupkg扩展,可能包含资产,如.DLL文件和.XML文件,对于多次使用目标框架和版本。当安装在应用程序或库中时,会根据应用程序或库指定目标框架选择适当资产。...对于依赖于框架应用程序,共享框架包含在安装在运行应用程序机器上文件夹中程序集中库组成。对于自包含应用程序,共享框架程序集包含在应用程序中。

    75610

    .NET 简介

    运行依赖于框架应用程序 CLI 命令。...NuGet 包是一个.zip文件,其.nupkg扩展名包含已编译代码 (DLL)、与该代码相关其他文件,以及包含包版本号等信息描述性清单。...将应用程序发布为依赖于框架应用程序会生成一个可执行文件和二进制文件(.dll文件),其中包含应用程序本身及其依赖项。应用程序用户必须单独安装 .NET运行时。...可执行文件是特定于平台,但依赖于框架应用程序.dll文件是跨平台。 您可以并排安装多个版本运行时,以运行面向不同版本运行时依赖于框架应用程序。有关更多信息,请参阅目标框架。....NET 核心和 .NET 5+ 2002 年,Microsoft 发布了.NET Framework,这是一个用于创建 Windows 应用程序开发平台。

    2K20

    Roslyn 解决 dotnet core 应用进程间引用找不到 runtimeconfig 依赖文件

    而此时就会遇到一个问题,如何让这个进程也被构建,然后输出到输出路径 在 .NET Core 里面,如果想要让输出文件包含两个不同进程入口文件,最简单方法是让一个项目引用另一个项目。...这个做法在 .NET Framework 里面很好用,因为此时将会在输出文件夹里面包含两个项目的输出文件。...基元: deps.json, runtimeconfig.json, dll文件 - LamondLu - 博客园 而如果我单个项目构建时候,其实是可以在项目输出文件夹看到这两个配置文件。...exe 了,将 OutputType 修改为库,那么请记得删除上面的代码,因此此时输出里面将没有包含配置文件 更多关于 Roslyn 请看 手把手教你写 Roslyn 修改编译 如果不想使用引用项目的方法...构建项目里面依赖是本地 lib 文件路径,而框架发布项目使用是 ref 文件夹路径。

    1.8K30

    .NET 可移植性分析器

    如果目标是使自己库能够在所有 .NET 支持平台上运行,则建议使用此对象。 ASP.NET Core:在 .NET Core 基础上构建现代 Web 框架。...在该位置选择项目的可执行文件DLL。 还可以使用 ApiPort 控制台应用。 键入以下命令即可分析当前目录:ApiPort.exe analyze -f ....若要分析特定 .dll 文件列表,请键入以下命令:ApiPort.exe analyze -f first.dll -f second.dll -f third.dll 运行 ApiPort.exe...以获取更多帮助 建议包含自己拥有的且要移植所有相关 exedll 文件,并且排除应用所依赖,但你既不拥有又无法移植文件。 这将为你提供最相关可移植性报表。...如果它是第三方库,请检查是否存在支持目标平台更新版本,考虑转到较新版本。 最终,此列表应该包含应用依赖所有第三方程序集(其中具有支持目标平台版本)。

    1.2K40

    使用 Visual Studio 发布 .NET 控制台应用程序

    发布应用程序会创建运行应用程序所需一组文件。 若要部署文件,请将文件复制到目标计算机。 先决条件 本教程适用于在使用 Visual Studio 创建 .NET 控制台应用程序中创建控制台应用。...打开在使用 Visual Studio 创建 .NET 控制台应用程序中创建 HelloWorld 项目。 请确保 Visual Studio 正在使用“发布”生成配置。...检查文件 默认情况下,发布过程会创建依赖于框架部署,在此类部署中,已发布应用程序在已安装 .NET 运行时计算机上运行。...HelloWorld.dll 这是应用程序依赖于框架部署版本。 若要执行此动态链接库,请在命令提示符处输入 dotnet HelloWorld.dll。...这种运行应用方法适用于安装了 .NET 运行时任何平台。 HelloWorld.exe 这是应用程序依赖于框架可执行文件版本。

    1.6K30

    .NET Core 3.0 构建和部署

    Default Executables 默认可执行文件 在 dotnet build 或 dotnet publish 期间,将创建一个与你使用 SDK 环境和平台相匹配可执行文件。...而且这个exe文件大小也很小,这是因为它依赖于.NET Core运行时,它所需要依赖项在我电脑上是全局可用。 还有另外一个地方也值得注意,项目所有的依赖也都复制到了这个输出文件夹里。...实际上这里只有一个exe文件,没有其它dll文件,而且这个exe文件很大,因为这里面包含了它需要所有依赖。...Assembly linking 程序集链接 目前这个exe有点大,.NET core 3.0 SDK 随附了一种工具,可以通过分析 IL 剪裁未使用程序集来减小应用大小。...自包含应用包括运行代码所需所有内容,而无需在主计算机上安装 .NET。 但是,很多时候应用只需要一小部分框架即可运行,并且可以删除其他未使用库。

    1.4K10

    杂谈 System.Drawing.Common 跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

    它从 API 级别就分离出 .NET Framework 中不跨平台部分,然后把它们从 .NET 核心仓库中移除,换成 .NET 扩展框架(如 WPF / Windows Forms)。...Xamarin / CoreGraphics 这是使用原生系统组件做图形实现,支持 macOS 平台。 其他第三方库因为不强依赖系统组件,所以能做到更好跨平台特性。...打开 netcoreapp3.1 输出目录下 *.deps.json 文件,可以注意到,里面记录了在不同运行目标下应该使用真实 System.Drawing.Common.dll 文件路径:...netstandard2.0 适用于 .NET Core 框架,里面包含 dll 就是前面我们说到所有方法都抛出 PlatformNotSupportedException 版本。...其他所有框架里都是 . 文件,是个空文件,仅用来告诉 NuGet 这个包支持这些框架安装,但不引用任何 dll

    2K60

    使用 PerfCollect 跟踪 .NET 应用程序

    如果使用是 .NET Core 3.1 或更低版本,则需要执行额外步骤。 有关详细信息,请参阅解析框架符号。...运行 PerfView.exe PerfView.exe PerfView 将基于跟踪文件包含数据显示受支持视图列表。...如果将 crossgen 工具置于 .NET 运行时 DLL 同一目录中(例如 libcoreclr.so),则 perfcollect 可以找到该工具并将框架符号添加到跟踪文件中。...通常,当你创建 .NET 应用程序时,它只为你编写代码生成 DLL,对其余代码使用运行时共享副本。 但是,你也可以生成应用程序所谓“自包含”版本,其中包含所有运行时 DLL。...crossgen 是用于创建包含应用 NuGet 包一部分,因此获取正确版本 crossgen 一种方法是创建应用程序包含包。

    1.1K20

    .NET平台系列26:在 Windows 上安装 .NET Core.NET5.NET6

    运行时用于运行 .NET 应用,应用可能包含也可能不包含它。 SDK 用于创建 .NET 应用和库。 .NET 运行时始终随 SDK 一起安装。当前最新版本 .NET 是 5.0。...运行时信息   运行时用于运行使用 .NET 创建应用。 应用作者发布应用时,可以在其应用中包含运行时。 如果作者未包含运行时,则由用户安装运行时。...下载手动安装   除了使用适用于 .NET Windows 安装程序,还可以下载手动安装 SDK 或运行时。 手动安装通常作为持续集成测试一部分执行。...首先,从以下站点之一下载 SDK 或运行时二进制版本: .NET 5.0 下载 .NET Core 3.1 下载 .NET Core 2.1 下载 所有 .NET Core 下载项 创建要将 .NET...然后,将下载 zip 文件提取到该目录中。 默认情况下,.NET CLI 命令和应用不会使用通过这种方式安装 .NET,并且你必须显式选择才能使用它。

    3.2K10

    .net 知新:【3】.net 5 项目结构说明和发布部署

    .net framework所有引用都显示在一起,包括其它项目、nuget包、dll等等引用。但是他们最终都是用项目文件来管理这些东西,所以我们再看看他们项目文件差异。...项目发布 可在两种模式下发布使用 .NET 创建应用程序,模式会影响用户运行应用方式。 将应用作为独立应用,生成应用程序将包含 .NET 运行时和库,以及该应用程序及其依赖项。...应用程序用户可以在未安装 .NET 运行时计算机上运行该应用程序。 如果将应用发布为依赖于框架应用,生成应用程序将包含该应用程序本身及其依赖项。...应用程序用户必须单独安装 .NET 运行时。 默认情况下,这两种发布模式都会生成特定于平台可执行文件。 不使用可执行文件也可以创建依赖于框架应用程序,这些应用程序是跨平台。...生成单个文件:这个就是字面意思,通过将所有依赖应用程序文件捆绑到一个二进制文件中,这种方式适用于将项目用作第三方库或者应用程序,方便传输管理。

    89420

    dotnet 使用 Refasmer 从现有的 DLL 里面导出公开成员组装出新作为引用用途程序集

    本文告诉大家 Resharper 家(JetBrains)开源 Refasmer 工具,这个工具功能就是从现有的 DLLEXE 程序集里面,将所有的公开成员导出,重新打出新 DLLEXE...此时打出程序集里面的方法都不包含实现,而是只有定义,这样程序集被成为作为引用用途程序集,也就是 Reference assemblies 意思,这也就是 Refasmer 命名来源 这个...或者用在某些超大项目上,用于支持超大解决方案里面单个项目的独立构建 和 dotnet 自带 ProduceOnlyReferenceAssembly 不同之处在于 Refasmer 可以从 DLL 里面导出作为引用用途程序集...创建作为引用公开成员程序集 除了以上默认命令外,还可以给 refasmer 加上以下参数,用于实现更多功能 指定导出文件夹 默认命令导出是 refasm.dll 文件,显然这样文件是不适合作为...foo 文件夹里面,找到 Lindexi.dll 文件,在这个 foo 文件夹里面的 dll 文件作为引用用途程序集 另外,如果只是想输出单个文件,可以通过 -o 参数,这个参数用于重新设置文件

    59720

    .NET Core应用三种部署方式

    这种方式针对某个特定版本.NET Core进行发布,只打包应用本身及.NET Core类库之外第三方依赖项,需要目标系统上已安装相应.NET Core运行时。...示例 创建控制台应用(这里使用.NET Core 2.2):dotnet new console。...可以在项目文件(.csoroj)中看到使用dotnet publish发布应用时默认使用目标框架: ? 可以将目标框架更改为任意被支持Target Framework Moniker (TFM)。...但有以下不同: FDE会生产可执行文件(如,Windows下exe),可直接运行程序,FDD打包后则需要借助dotnet utility来启动,如:dotnet app.dll。...这里可执行文件作用与dotnet命令类似,是启动.NET Core应用HOST,在Windows中,可执行程序名称通常为:.exe,.NET Core应用名为<PROJECT-FILE

    1.6K10

    C#.NET 如何创建带有本机依赖框架多系统 NuGet 包

    其中,ref 文件夹内包含各个不同框架下要引用程序集。...另外,目标框架我们选了两个,与最终包含本机依赖框架种类对应,即分别允许高于 .NET Core App 3.1(含 .NET 5/6)和 .NET Framework 4.5.2 框架程序集引用此项目...(实际上是可以正常引用编译通过,但在 .NET Core 框架下无法运行。) 第四步:再建一个普通类库 再建一个普通类库,引用之前创建项目。....NET Core App 项目 对于 .NET Core App 项目,项目编译后,输出目录下会出现“runtimes”和“ref”两个文件夹,分别对应 NuGet 包里同名文件夹,不过只包含业务项目需要框架...如果你使用 .NET 发布功能将其发布成框架独立应用程序,那么编译器会自动将 runtimes 里面的对应架构和框架文件拷贝至输出目录下,于是你就能正常运行你程序了。

    75250

    .Net 框架

    那么采用C#编译器生成文件又是什么呢?现在需要引入程序集这个概念:在.NET框架下,类似C#这样高级语言经过编译后生成结果文件被称做程序集,其后缀名是.dll(类库)或.exe(可执行程序)。...为了进一步了解程序集,我们再来做一个试验,使用VB.NET创建一个控制台应用程序项目(ConsoleAppVB),生成一个程序集,代码功能和上面用C#创建项目是一样。...BCL中包含了与编译器及CIL语言关系紧密核心类型,以及常见开发任务中都会使用类型。而FCL包含内容极多,服务于一种应用场景子类库就足够写一本书了,这里简单对它进行介绍。...Windows操作系统能够加载运行.dll和.exe是因为它能够理解PE/COFF文件格式。显然,所有在Windows操作系统上运行程序都需要符合这个格式,当然也包括.NET程序集在内。...这个库文件是.NET框架核心组件之一,注意它也不是一个程序集。MsCorEE.dll位于C:\%SystemRoot%\System32\系统文件夹下所有安装了.NET框架计算机都会有这个文件

    1.9K21

    在制作多框架项目的 NuGet 包时应该注意问题(buildMultiTargetingTargetFrameworks)

    制作一个 dll 引用 NuGet 包简直是一键完成,无论是不是多框架项目;制作 dotnet-tools 也是如此。...执行时机 我们打出这样两种 NuGet 包,一种是包含 build 文件夹而不包含 buildMultiTargeting 文件夹;一种是包含 build 文件夹和 buildMultiTargeting...于是我们可以得到这样四种不同组合情况: 含 build 文件 NuGet 包装到单框架项目中 含 build 文件 NuGet 包装到多框架项目中 包含 build 和 buildMultiTargeting...含 build 文件 NuGet 包装到多框架项目中 在这种情况下,build 文件夹中 .props 和 .targets 文件,会分别在目标项目编译每个框架时候执行一次。...在编译 netcoreapp3.1 框架时候会执行一次 Walterlv.NullableAttributes.Source 包中 build 文件夹中编译任务;在编译 net48 框架时候又会执行一次

    36130

    一种 Au3 远控木马变种样本分析

    0x03变种木马分析 3.1 可疑文件 可疑文件被嵌入在某文档中,以邮件方式进行传播: ? 提取出可执行程序样本后,发现该样本为 RAR 自解压程序: ?...研究发现,该脚本执行过程简述如下: 当解压操作完成时,程序会自动以当前用户权限运行 AutoIt3.exe ,再由 AutoIt3.exe 编译执行脚本文件 main.au3。...DllStructCreate:用于创建 DLL 结构体。 DllStructSetData:用于设置 DLL 结构体数据内容。 DllStructGetPtr:用于获取结构体指针。...分析发现,攻击脚本 attack.au3 执行之后,会启动以下程序(优先使用v4): C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegSvcs.exe...可接受指令部分如下: 指令 作用 kl 开启 KeyLogger 键盘记录模块 nk 使用指定密码加密通讯流量 ~ 收集当前进程信息 ~ 源码中声明该指令,未定义具体操作 @ 收集本地文件夹目录

    2.4K70
    领券