首页 > 其他分享 >Deploy Sharepoint项目的wsp包之后调用出现缺失DLL的错误

Deploy Sharepoint项目的wsp包之后调用出现缺失DLL的错误

时间:2024-09-03 16:04:15浏览次数:9  
标签:LOG Sharepoint DLL wsp file NET Microsoft name

server:Windows server 2022 data center .

Sharepoint : SE.

使用VS2022 deploy之后,web页面访问SharePoint站点报缺失DLL的错误,这里边引入了NPOI库用来导入导出excel,但是导入的时候某些excel就会报错

System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

但是自己项目引入的是6.0的这个DLL,为什么会找5.0的DLL呢,我尝试在站点的web.config直接添加bindingRedirect,发现有效果。

经过查阅资料可以用过一个VS内置工具来查看DLL查找错误的日志。

assembly binding log viewer (FUSLOGVW) Fuslogvw.exe (Assembly Binding Log Viewer) - .NET Framework | Microsoft Learn

The operation failed.
Bind result: hr = 0x80131040. No description available.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  c:\windows\system32\inetsrv\w3wp.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
 (Fully-specified)
LOG: Appbase = file:///C:/inetpub/wwwroot/wss/VirtualDirectories/9099/
LOG: Initial PrivatePath = C:\inetpub\wwwroot\wss\VirtualDirectories\9099\bin
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\ceaedf3a
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\ceaedf3a
LOG: AppName = bdf082ee
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\inetpub\wwwroot\wss\VirtualDirectories\9099\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: GAC Lookup was unsuccessful.

这里可以很详细的看到查找DLL的顺序,但是依然没有办法再部署的时候自动修改这个配置,我又查阅了相关的资料

发现Sharepoint在feature激活的时候使用SPWebConfiModification来修改web.config.

SPSecurity.RunWithElevatedPrivileges(() =>
{
    SPSite currentSite = properties.Feature.Parent as SPSite;

    var name = "*[local-name()='dependentAssembly'][*/@name='" + "System.Runtime.CompilerServices.Unsafe" + "'][*/@publicKeyToken='b03f5f7f11d50a3a'][*/@culture='neutral']";
    var value = "<dependentAssembly><assemblyIdentity name='" + "System.Runtime.CompilerServices.Unsafe" + "' publicKeyToken='b03f5f7f11d50a3a' culture='neutral' /><bindingRedirect oldVersion='0.0.0.0-6.0.0.0' newVersion='6.0.0.0' /></dependentAssembly>";
    SPWebConfigModification modification = new SPWebConfigModification()
    {
        Name = name,
        Path = "configuration/runtime/*[local-name()='assemblyBinding' and namespace-uri()='urn:schemas-microsoft-com:asm.v1']",
        Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode,
        Value = value,
        Sequence = 0,
        Owner = "SPAdmin"
    };

    currentSite.WebApplication.WebConfigModifications.Add(modification);
    currentSite.WebApplication.Update();
    currentSite.WebApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
});

 

 

标签:LOG,Sharepoint,DLL,wsp,file,NET,Microsoft,name
From: https://www.cnblogs.com/lucky528/p/18394769

相关文章

  • 使用 ZwCreateThreadEx 函数强力注入 Dll
    常用的线程注入方法有:远程线程注入、全局消息钩子注入、APC应用层异步注入和ZwCreateThreadEx强力注入等。今天我们讲一下ZwCreateThreadEx强力注入的这种方法。之前的远程线程通过CreateRemoteThread函数来进行Dll注入,这种方式可以注入普通的进程,但是却无法注入到系统......
  • 启动应用程序出现SebBackgroundManagerPolicy.dll找不到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个SebBackgroundManagerPolicy.dll文件(挑选合......
  • 全局消息钩子注入 Dll
    常用的线程注入方法有:远程线程注入、全局消息钩子注入、APC应用层异步注入、ZwCreateThreadEx强力注入和纯汇编实现的线程注入等。今天我们讲一下全局消息钩子注入的这种方法,其原理是通过SetWindowsHookEx函数,注册一个全局消息钩子,当我们截获到消息时(只要权限足够,任何基于消......
  • 远程线程注入 Dll
    常用的线程注入方法有:远程线程注入、普通消息钩子注入、全局消息钩子注入、APC应用层异步注入、ZwCreateThreadEx强力注入和纯汇编实现的线程注入等。今天我们讲一下远程线程注入的这种方法,其原理是获取LoadLibrary系统函数的地址(我们知道系统函数的地址在每个进程中都是保持......
  • Dll 可执行文件的编写与调用
    一、Dll可执行文件的编写首先我们需要在VS创建一个动态链接库(DLL)项目,然后会生成如下代码://dllmain.cpp:定义DLL应用程序的入口点。#include"pch.h"BOOLAPIENTRYDllMain(HMODULEhModule,//指向Dll模块的句柄DWORDul_reason_for......
  • 《鸣潮》游戏崩溃弹窗“错误代码[126]:加载xapofx1_5.dll失败”该怎么解决?鸣潮游戏闪
    在《鸣潮》游戏中,若出现崩溃弹窗“错误代码[126]:加载xapofx1_5.dll失败”,可尝试重新安装游戏运行所需的组件。检查系统环境是否完整,确保相关动态链接库文件正确安装,以解决此问题,顺利进行游戏。本篇将为大家带来《鸣潮》游戏崩溃弹窗“错误代码[126]:加载xapofx1_5.dll失败”该......
  • “由于找不到 acui23.dll 无法执行代码”专家级修复教程:详尽步骤助您重启应用程序
    当您尝试运行AutoCAD或其他依赖acui23.dll文件的应用程序时,可能会遇到“由于找不到acui23.dll无法执行代码”的错误提示。这通常意味着系统中缺少必要的动态链接库文件或存在兼容性问题。本文将详细解释这个问题的原因,并提供多种解决方法,帮助您顺利运行应用程序。acui2......
  • WinRM远程管理受阻?wsclient.dll缺失的诊断与修复全流程
    wsclient.dll是一个与Windows系统相关的动态链接库(DLL)文件,通常与Windows远程管理(WinRM)服务有关。WinRM服务允许远程访问和管理Windows系统,wsclient.dll可能包含了处理远程请求、资源管理和与其他系统组件交互等功能所需的函数和资源,对于确保远程管理功能的正常运行非常重要。......
  • hp1006pp.dll:HP打印机驱动的核心,受损后的修复指南
    hp1006pp.dll是一个与HP打印机相关的动态链接库(DLL)文件,通常与HPLaserJet1006等型号的打印机驱动程序的功能实现有关。这个DLL文件可能包含了处理打印作业、资源管理和与其他系统组件交互等功能所需的函数和资源,对于确保打印机驱动程序的正常运行非常重要。当hp1006pp.dll......
  • IDA反编译dll库时导入C++头文件
    引言有时候,可能因为硬盘损坏等等原因,自己曾经写的动态链接库源码丢失了,幸好对应的头文件得以保留了下来,这个动态链接库主要是某种算法的实现,并没有继承其他的一些类库,比如MFC之类的,而自己对算法的实现已经忘得差不多了,而突然又需要该算法的实现过程,那么有什么办法可以帮助......