如何让VS2022编译时将ASP.NET Core共享框架DLL输出到目录?
解决.NET 6类库无法加载Microsoft.AspNetCore.App共享框架DLL的问题
要强制将Microsoft.AspNetCore.App共享框架的运行时DLL复制到输出目录,你可以通过修改项目配置和发布参数实现,具体步骤如下:
1. 修改项目文件(.csproj)
在你的类库项目文件中添加以下配置:
<PropertyGroup> <!-- 强制复制所有NuGet锁定文件中的依赖程序集到输出目录 --> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <!-- 指定目标设备的运行时标识符,根据实际平台修改(如win-x64、linux-arm64等) --> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup> <ItemGroup> <!-- 显式配置Microsoft.AspNetCore.App框架引用,确保运行时资产被复制 --> <FrameworkReference Include="Microsoft.AspNetCore.App" PrivateAssets="All" /> </ItemGroup>
2. 使用dotnet发布命令生成输出
在命令行中执行发布命令,确保依赖被完整复制:
dotnet publish -c Release -r win-x64 --self-contained false
-c Release:以Release模式编译-r win-x64:匹配你设置的运行时标识符--self-contained false:不打包整个.NET运行时,仅复制所需的ASP.NET Core依赖DLL
3. 验证输出结果
发布完成后,检查输出目录(默认是bin/Release/net6.0/win-x64/publish),你会看到Microsoft.AspNetCore.App相关的运行时DLL已被复制到该目录中,而非仅存于refs文件夹。
注意:
PreserveCompilationContext配置仅用于保留编译期间的上下文信息,不会复制运行时DLL,因此无法解决你的问题。
内容的提问来源于stack exchange,提问作者B. Green
相关产品推荐
相关产品推荐

