dotnet cli,.net6,.net7.net8, xxx.csproj 外部 DLL 引用,目录文件拷贝,引用外部 dll
.csproj 文件配置
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Reference Include="Aspose.Cells">
<HintPath>..\DemoProject.Dll\Aspose.Cells.dll</HintPath>
</Reference>
<Reference Include="ApiCommand">
<HintPath>..\DemoProject.Dll\suzhou_function\ApiCommand.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="..\DemoProject.Dll\suzhou_markingrule\**">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Link>suzhou_markingrule\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="..\DemoProject.Dll\suzhou_function\**">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Link>suzhou_function\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Content>
</ItemGroup>
</Project>
项目目录结构
注:目录结构采用 树状层级 展示,关键目录/文件标注了与 .csproj 配置的对应关系。
# 项目根目录(假设项目名为 "DemoProject",可根据实际情况修改)
DemoRoot/
├─ # 1. 外部依赖库目录(.csproj 中通过 ..\DemoProject.Dll\ 引用)
│ DemoProject.Dll/ # 存放所有外部 DLL 和静态资源的根目录(与项目目录同级)
│ ├─ suzhou_function/ # 功能类 DLL 目录(对应 .csproj 中 ApiCommand.dll 引用和文件拷贝)
│ │ ├─ ApiCommand.dll # 被引用的 DLL(<Reference Include="ApiCommand"> 配置)
│ │ └─ [其他文件] # 该目录下的所有文件/子目录(如依赖 DLL、配置文件等,会被拷贝到输出目录)
│ │
│ ├─ suzhou_markingrule/ # 标注规则静态资源目录(对应 .csproj 中文件拷贝配置)
│ │ └─ [静态资源文件] # 如 XML/JSON 规则文件、模板文件等(会被拷贝到输出目录)
│ │
│ └─ Aspose.Cells.dll # 独立外部 DLL(Excel 操作库,<Reference Include="Aspose.Cells"> 配置)
│
├─ # 2. 当前 .NET 6.0 项目目录(存放 .csproj 和源代码)
│ DemoProject/ # 项目主目录(名称可自定义,如 "SuzhouBusinessProject")
│ ├─ DemoProject.csproj # 你提供的项目配置文件(核心依据)
│ ├─ Program.cs # .NET 6.0 控制台/API 入口文件(ImplicitUsings 启用,无需显式 using System)
│ │
│ ├─ # 3. 项目输出目录(编译/发布后自动生成,对应 .csproj 中 CopyToOutputDirectory/CopyToPublishDirectory)
│ │ ├─ bin/ # 编译输出目录
│ │ │ ├─ Debug/ # Debug 模式输出
│ │ │ │ └─ net6.0/ # 目标框架目录
│ │ │ │ ├─ DemoProject.dll # 项目编译产物
│ │ │ │ ├─ Aspose.Cells.dll # 引用的 DLL(自动复制或通过配置关联)
│ │ │ │ ├─ ApiCommand.dll # 引用的 DLL(自动复制)
│ │ │ │ ├─ suzhou_function/ # 从外部目录拷贝的文件(<Content> 配置)
│ │ │ │ │ └─ [原 suzhou_function 下的所有文件]
│ │ │ │ └─ suzhou_markingrule/ # 从外部目录拷贝的文件(<Content> 配置)
│ │ │ │ └─ [原 suzhou_markingrule 下的所有文件]
│ │ │ └─ Release/ # Release 模式输出(结构同 Debug/net6.0)
│ │ │
│ │ └─ obj/ # 编译中间文件目录(如 .csproj.nuget.dgspec、临时编译文件等,无需手动修改)
│ │
│ └─ # 4. 发布目录(执行 dotnet publish 后生成)
│ └─ publish/ # 发布输出目录(结构同 bin/Release/net6.0,包含所有运行依赖)
│ ├─ DemoProject.dll
│ ├─ Aspose.Cells.dll
│ ├─ suzhou_function/
│ └─ suzhou_markingrule/
│
└─ # (可选)解决方案文件(若项目属于解决方案)
DemoSolution.sln # 解决方案文件(管理多个项目时存在,如包含 DemoProject 和其他依赖项目)
浙公网安备 33010602011771号