Azure Function v1项目新机器编译时Newtonsoft.Json.dll未生成至Bin目录求助
解决Azure Function v1(.NET Framework 4.8)迁移后Newtonsoft.Json缺失及编译警告问题
一、修复Newtonsoft.Json.dll未生成的问题
针对新机器编译时RemoveRuntimeDependencies任务移除DLL的问题,可通过以下方式处理:
修改项目文件禁用/精准控制移除逻辑
编辑项目的.csproj文件,添加以下配置,要么全局禁用移除运行时依赖的任务,要么精准保留指定版本的Newtonsoft.Json:<!-- 全局禁用移除任务 --> <PropertyGroup> <RemoveRuntimeDependencies>false</RemoveRuntimeDependencies> </PropertyGroup> <!-- 或仅保留指定版本的Newtonsoft.Json --> <ItemGroup> <RuntimeDependencyInclude Include="Newtonsoft.Json" Version="13.0.1" /> </ItemGroup>确保NuGet包的复制本地属性开启
右键项目中的Newtonsoft.Json包,将“复制本地”设置为True;也可直接在项目文件中确认配置:<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <Private>True</Private> <!-- 此属性控制是否复制到输出目录 --> </Reference>验证程序集绑定重定向配置
确认Web.config中的绑定重定向规则正确,确保旧版本请求能转向13.0.0.0版本:<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly>
二、处理System.ServiceModel程序集解析警告
该警告源于编译时无法找到System.ServiceModel程序集,可通过以下步骤解决:
添加System.ServiceModel程序集引用
在项目右键菜单中选择“引用”→“添加引用”,在.NET框架选项卡中找到System.ServiceModel并勾选添加,确保编译时能正常解析该程序集。确认项目目标框架一致性
检查新机器上项目的目标框架是否为.NET Framework 4.8,与旧机器保持一致,避免因框架版本不匹配导致程序集引用失效。
内容的提问来源于stack exchange,提问作者DanScan
相关产品推荐
相关产品推荐

