部署至Azure App Service时System.Runtime.dll被删除的原因问询
部署Azure时System.Runtime.dll被删除的原因
部署清单未包含该DLL
部署依赖My.SourceManifest.xml清单同步文件,若清单未列出System.Runtime.dll,Web Deploy会判定目标端该文件为冗余,执行删除操作。这通常是编译发布时,该DLL未被正确纳入发布包清单导致的。框架依赖部署模式的影响
若你的.NET应用采用框架依赖部署(FDD),System.Runtime.dll属于.NET核心框架依赖,发布时不会被复制到c:\publish\bin目录(因为Azure App Service已预装对应框架版本)。Web Deploy检测到目标端存在本地包没有的该文件,就会删除它。项目配置的排除规则
检查项目的.pubxml发布配置文件或.csproj项目文件,是否存在针对System.Runtime.dll的排除规则,比如:<ExcludeFilesFromDeployment>System.Runtime.dll</ExcludeFilesFromDeployment>这类规则会阻止该DLL被加入部署包,进而触发Web Deploy的删除逻辑。
Web Deploy的镜像同步策略
Web Deploy默认采用镜像同步,会以本地发布包的文件结构为基准,删除目标端存在但本地包缺失的文件。如果本地c:\publish\bin目录确实没有System.Runtime.dll,部署时就会删除Azure端的同名文件。
内容的提问来源于stack exchange,提问作者Tracey
相关产品推荐
相关产品推荐

