未能从程序集中加载类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未能从程序集中加载类相关的知识,希望对你有一定的参考价值。
修改原网站时增加了3个类文件整合网站,部署中IIS中运行报错
未能从程序集“BLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”
中加载类型“BLL.XXManager”。我已经把修改后生成的dll拷贝到原网站中了。怎么还会报找不到类呢
重新编译了,我现在只有打包部署好的原网站,原网站在服务器上,只需用把修改后的文件替换原有的文件,把修改后生成的dll拷贝到原网站中,dll是有了,而且每次编辑生成的dll名称不同,还是找不到类
追答编译后,整个解决方案有一个DLL,就是在BIN/DEBUG下,你看看这个文件是不是没有发布
参考技术A 不能只是把dll文件拷贝过去,程序中还需要加载引用追问我在表示层中添加bll和model层的引用,在开发环境中运行正常但是在IIS中就报找不到类
追答建议重新打包部署
本回答被提问者采纳 参考技术B 在这个dll上右键“属性”,看看路径对不对 参考技术C 没有引用BLL.XXManager吧。你看看你有引用这个文件没 参考技术D 求解无法从程序集中加载类型
【中文标题】无法从程序集中加载类型【英文标题】:Cannot load type from assembly 【发布时间】:2019-03-02 05:26:06 【问题描述】:我正在研究来自MSDN MarshalByRefObject 的代码我无法弄清楚为什么这会引发异常。我在想它是否可能是 Worker 类型与类 Program 在同一个程序集中?我是否需要在 GAC 中安装此程序集,尽管我在 Visual Studio 2017 编辑器中以调试模式运行它。我对如何使用汇编没有扎实的了解。
using System;
using System.Reflection;
namespace AppDomainMarshalByRefObject
public class Program
public static void Main(string[] args)
Worker localWorker = new Worker();
localWorker.PrintDomain();
AppDomain ad = AppDomain.CreateDomain("New domain");
Worker remoteWokrer = (Worker)ad.CreateInstanceAndUnwrap(typeof(Worker).Assembly.FullName, "Worker");
remoteWokrer.PrintDomain();
Console.ReadKey();
public class Worker : MarshalByRefObject
public void PrintDomain()
Console.WriteLine("Object is executing in AppDomain \"0\"",
AppDomain.CurrentDomain.FriendlyName);
【问题讨论】:
【参考方案1】:您实例化了一个不完整的typename
。将此添加到您的代码中:
public static void Main(string[] args)
...
var typeName = typeof(Worker);
AppDomain ad = AppDomain.CreateDomain("New domain");
Worker remoteWokrer = (Worker)ad.CreateInstanceAndUnwrap(typeof(Worker).Assembly.FullName, typeName.FullName);
...
【讨论】:
以上是关于未能从程序集中加载类的主要内容,如果未能解决你的问题,请参考以下文章