DNN 7 Web API模块;无法加载文件或程序集
本文关键字:加载 文件 程序集 Web API 模块 DNN | 更新日期: 2023-09-27 18:04:11
背景
我正在为现有的DNN 7网站构建一个移动应用程序;由一年前离开的其他人制作。我之前设置了一个WebApi模块来处理身份验证。然后我想到了建立一个类库来存放我的DTO对象;因为我必须修改几个现有的模块来公开web方法,而且它们必须与我的应用程序交互。所以我创建了一个类库,放入两个类并进行编译。添加了对我的应用程序和web模块的dll引用,它们在引用我的对象时构建没有问题。然而,当我从我的应用程序或Postman chrome扩展程序向我的模块发送网络请求时,我会得到:
"Could not load file or assembly 'Elf.Web.Models, Version=1.0.6081.13955, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.",
我的应用程序在创建和使用对象时似乎没有问题,只是使用了web模块。
我尝试/检查的内容
属性我确保我的类库和web模块都针对同一个框架。NET Framework 4.5
引用属性复制本地为真并且符合其他问题我尝试手动编辑.csproj文件,以便在引用下将属性Private添加到True。我甚至尝试向程序集添加绑定重定向。
手动我还尝试打开我的模块安装zip,将类库dll放入bin文件夹,重新压缩,然后安装到dnn站点。这个问题一直存在。
如果其他人知道什么可能是一个问题,我们将不胜感激。
将库dll放入安装程序zip文件的bin文件夹不会在安装过程中自动将库dll文件放入DotNetNuke安装程序的bin文件夹。
将其添加到<components>
节点下的installer.dnn文件中。
<component type="Assembly">
<assemblies>
<assembly>
<name>myLibrary.dll</name>
<path>bin</path>
</assembly>
</assemblies>
</component>
如果要将文件自动添加到安装程序zip中,则必须在ModulePackage.targets
文件中进行引用。
<Copy SourceFiles="$(MSBuildDnnBinPath)'myLibrary.dll" DestinationFolder="$(MSBuildProjectDirectory)'Package'bin"/>