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站点。这个问题一直存在。

如果其他人知道什么可能是一个问题,我们将不胜感激。

DNN 7 Web API模块;无法加载文件或程序集

将库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"/>