.NET Core 6 API部署IIS后加载System.Collections.Immutable组件失败求助
解决.NET Core 6 API部署IIS后Roslyn依赖加载错误
针对部署到IIS后出现的System.Collections.Immutable, Version=7.0.0.0加载错误,可尝试以下几种解决方案:
显式引用兼容版本的依赖库
在项目中添加System.Collections.Immutable的NuGet引用,选择与你的Roslyn包(4.0.x版本)兼容的6.0.x系列版本(匹配.NET Core 6的框架版本),避免引入7.0版本的依赖冲突。安装完成后重新发布部署。配置程序集绑定重定向
在项目根目录创建runtimeconfig.template.json文件,添加绑定规则将高版本的依赖重定向到你实际引用的版本,示例配置如下:{ "runtimeOptions": { "assemblyBinding": { "dependencies": [ { "name": "System.Collections.Immutable", "publicKeyToken": "b03f5f7f11d50a3a", "redirects": [ { "from": "7.0.0.0", "to": "6.0.0.0" } ] } ] } } }注意将
to字段的版本号替换为你实际安装的System.Collections.Immutable版本。确保发布时依赖项完整复制
在项目文件(.csproj)中添加以下配置,强制将所有NuGet依赖复制到输出目录:<PropertyGroup> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> </PropertyGroup>同时检查发布配置,若使用框架依赖模式,确认依赖项未被遗漏;也可尝试切换为自包含部署模式重新发布。
清理缓存并重新部署
删除IIS站点对应发布目录下的所有文件,重新发布项目以避免旧依赖残留;重启IIS应用池,确保新的依赖项被正确加载。
内容的提问来源于stack exchange,提问作者mohamed souilmi
相关产品推荐
相关产品推荐

