C# Excel VSTO插件ClickOnce发布后无法加载msalruntime.dll
解决ClickOnce发布VSTO插件时缺失msalruntime.dll的问题
针对你遇到的ClickOnce发布后msalruntime.dll缺失导致MSAL初始化失败的问题,可以通过以下几种方式强制将该DLL包含进发布包:
手动添加文件到项目并配置属性
- 定位到本地的
msalruntime.dll文件(可从项目依赖的SDK目录或本地调试输出目录获取) - 右键项目 → 添加 → 现有项,选中该DLL文件
- 在解决方案资源管理器中选中该DLL,在属性面板设置:
- 生成操作:
内容 - 复制到输出目录:
如果较新则复制 - 包含在ClickOnce发布中:
是(部分版本Visual Studio中该选项可能显示为“包含”)
- 生成操作:
- 定位到本地的
直接编辑项目文件强制包含
右键项目 → 编辑项目文件(.csproj),添加以下XML代码块,替换路径为实际的DLL相对路径:<ItemGroup> <Content Include="libs\msalruntime.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <IncludeInClickOnce>true</IncludeInClickOnce> </Content> </ItemGroup>检查ClickOnce发布的应用文件列表
- 打开项目的发布设置(右键项目 → 发布)
- 点击「应用文件」按钮
- 在弹出窗口中找到
msalruntime.dll,确保其「发布状态」设置为「包含」;若未找到,需先按第一种方法将文件添加到项目中
验证manifest文件配置
若之前手动修改过solution.dll.manifest,确保其中包含该DLL的正确配置条目(通常添加文件到项目后Visual Studio会自动生成,无需手动修改):<file name="msalruntime.dll" size="对应文件大小"> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /> <dsig:DigestValue>对应文件的SHA256摘要值</dsig:DigestValue> </hash> </file>
内容的提问来源于stack exchange,提问作者gooopil
相关产品推荐
相关产品推荐

