C# 如何在项目外部动态加载dll?

C# 如何在项目外部动态加载dll?,c#,dll,C#,Dll,如何动态加载DLL 请不要建议: 不要建议使用GAC,因为DLL已经生成,无法更改或更新 不要建议hintpath、Assembly.LoadFrom(…),因为此功能在调试时工作,而不是在项目外部 如果我将该DLL/exe复制到项目外部的测试机上,则会显示一个错误:无法加载.DLL 我还问了一个问题 有人能帮我吗 谢谢 Ashish在这方面效果很好 如果您正在获取,请检查您尝试加载的程序集是否针对与执行加载的程序集相同的平台目标(x86或x64)编译 根据评论进行更新 听起来您正试图将.NET

如何动态加载DLL

请不要建议:

  • 不要建议使用GAC,因为DLL已经生成,无法更改或更新
  • 不要建议hintpath、
    Assembly.LoadFrom(…)
    ,因为此功能在调试时工作,而不是在项目外部
  • 如果我将该DLL/exe复制到项目外部的测试机上,则会显示一个错误:无法加载.DLL

    我还问了一个问题

    有人能帮我吗

    谢谢
    Ashish在这方面效果很好

    如果您正在获取,请检查您尝试加载的程序集是否针对与执行加载的程序集相同的平台目标(x86或x64)编译

    根据评论进行更新

    听起来您正试图将.NET 2.0程序集加载到.NET 4.0应用程序中,并且您已经在应用程序配置文件中放置了以下内容:

    <configuration> 
        <startup useLegacyV2RuntimeActivationPolicy="true"> 
            <supportedRuntime version="v4.0" />    
        </startup>
    </configuration>
    
    
    
    在这种情况下,请检查以确保配置文件与可执行文件一起部署到目标计算机上。例如,如果您的应用程序名为
    MyProgram.exe
    ,则您的配置文件应名为
    MyProgram.exe.config
    ,并且需要将其复制到与目标计算机上的可执行文件相同的文件夹中才能生效-框架将在启动时加载此文件,如果存在。请尝试使用assembly.loadfile函数而不是loadfrom。它也将在项目之外工作。2) 若你们得到了程序集混合模式错误,那个么只需要复制xml文件以及在bin folder.xml文件中生成的dll,该文件包含app.config文件数据。app.config文件中的代码是


    同时检查链接

    您所说的“因为此功能在调试时起作用”是什么意思
    Assembly.LoadFrom
    似乎符合您的目的。不,它不会给出BadImageFormatException。现在我得到一个新的错误:混合模式程序集是针对“V2”生成的。。。。我已经在下面的app.config文件中使用了代码。但仍然给出了错误。它具有相同的条件,即在调试中工作,但不在项目之外。你能帮我吗?建议编辑您的原始问题,包括您收到的错误消息的全部详细信息。不过,我已经更新了我的答案。祝你好运…我得到了解决方案,只需要复制xml文件以及bin folder中生成的dll。xml文件包含app.config文件数据。