.net6.0引用的dll放置单独的文件夹

这篇具有很好参考价值的文章主要介绍了.net6.0引用的dll放置单独的文件夹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

.net6.0 采用原有的设置方法不起作用

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
    </startup>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<!--<publisherPolicy apply="yes" />这句不要也是可以的-->
			<probing privatePath="dll;dll/2" />
		</assemblyBinding>
	</runtime>
</configuration>

http://www.dedeyun.com/it/csharp/104076.html

需要在App.xaml.cs文件中加入以下代码
https://9to5answer.com/using-an-absolute-path-in-probing-privatepath文章来源地址https://www.toymoban.com/news/detail-664159.html

public App()
        {
            AssemblyResolver.Hook("DLL");
        }

public static class AssemblyResolver
{
    internal static void Hook(params string[] folders)
    {
        AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            // Check if the requested assembly is part of the loaded assemblies
            var loadedAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(a => a.FullName == args.Name);
            if (loadedAssembly != null)
                return loadedAssembly;

            // This resolver is called when a loaded control tries to load a generated XmlSerializer - We need to discard it.
            // http://connect.microsoft.com/VisualStudio/feedback/details/88566/bindingfailure-an-assembly-failed-to-load-while-using-xmlserialization

            var n = new AssemblyName(args.Name);

            if (n.Name.EndsWith(".xmlserializers", StringComparison.OrdinalIgnoreCase))
                return null;

            // http://stackoverflow.com/questions/4368201/appdomain-currentdomain-assemblyresolve-asking-for-a-appname-resources-assembl

            if (n.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase))
                return null;

            string assy = null;
            // Get execution folder to use as base folder
            var rootFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)??"";

            // Find the corresponding assembly file
            foreach (var dir in folders)
            {
                assy = new[] { "*.dll", "*.exe" }.SelectMany(g => Directory.EnumerateFiles(Path.Combine(rootFolder,dir), g)).FirstOrDefault(f =>
                {
                    try
                    {
                        return n.Name.Equals(AssemblyName.GetAssemblyName(f).Name,
                            StringComparison.OrdinalIgnoreCase);
                    }
                    catch (BadImageFormatException)
                    {
                        return false; /* Bypass assembly is not a .net exe */
                    }
                    catch (Exception ex)
                    {
                        // Logging etc here
                        throw;
                    }
                });

                if (assy != null)
                    return Assembly.LoadFrom(assy);
            }

            // More logging for failure here
            return null;
        };
    }
}

到了这里,关于.net6.0引用的dll放置单独的文件夹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue3+vite+js 引用public文件夹中js文件

    1、/public/ep.js 2、页面入口index.html         在head中引入js文件 3、其他页面使用

    2024年02月15日
    浏览(33)
  • 访问windows server 2022共享文件夹提示引用 的账户当前已锁定且无法登录的解决

    访问windows server 2022共享文件夹提示引用 的账户当前已锁定且无法登录的解决

    访问windows server 2022共享文件夹提示 引用的帐户当前已锁定,且可能无法登录的解决 客户端打开windows server 2022的共享文件或者升级文件夹时提示\\\"引用的帐户当前已锁定,且无法登录\\\",这有可能是服务器且用了【允许管理员账户锁定】导致登录界面输入错误的密码超过次数或

    2024年02月11日
    浏览(53)
  • PowerShell 远程调用net share共享文件夹

    要在远程计算机上使用 PowerShell 创建或管理共享文件夹,你可以使用  New-SmbShare  或  Get-SmbShare  命令。下面是一个示例,展示如何远程调用  New-SmbShare  命令来创建共享文件夹: 请将  远程计算机的 IP 地址或主机名  替换为你要远程执行命令的计算机的实际 IP 地址或主机

    2024年01月25日
    浏览(7)
  • ASP.NET Core 中的 wwwroot 文件夹

    ASP.NET Core 中的 wwwroot 文件夹

    在本文中,我将讨论 ASP.NET Core 应用程序中的 wwwroot 文件夹。请阅读我们之前讨论过ASP.NET Core 请求处理管道的文章。在本文的最后,您将了解 wwwroot 文件夹及其需求以及如何在 ASP.NET Core 应用程序中进行配置。 ASP.NET Core 中的 wwwroot 文件夹是什么? 默认情况下,ASP.NET Core 应用

    2024年02月04日
    浏览(10)
  • 【.NET】C#/.NET新建项目sln,增加src和test文件夹问题和解决方案

    【.NET】C#/.NET新建项目sln,增加src和test文件夹问题和解决方案

    ​         经常逛github找优秀的.NET项目看,看到github上的项目的层级有src test,sln放在外层。如下图:  发现自己再Visaul Studio新建的项目即使添加了src和test,然后基于文件夹下新建项目,物理路径上也不是这样的结构。如图  物理路径下依然和sln是平级状态。 全程新建项目通

    2024年02月05日
    浏览(15)
  • [.NET学习笔记] -.NET6.0项目动态加载netstandard2.0报错但项目添加引用则正常的问题

    .NET6.0的项目使用netstandard2.0版本的动态链接库。若是在项目中直接添加引用,应用netstandard2.0项目或者netstandard2.0编译后的dll均能正常工作。但如果通过xcopy等方式,额外将对应的dll复制到执行目录,会执行失败。调用方式一致,均为Assembly.Load(XXXDllName)。 错误信息为: System

    2024年02月12日
    浏览(11)
  • Linux移动文件夹(文件)到其他文件夹 / 复制到其他文件夹 【cp / mv命令】

    1)将一个文件夹复制到另一个文件夹下(一般复制一个项目的时候,直接使用这个命令) cp -r /home/packageA /home/packageB 运行命令之后packageB文件夹下就有packageA文件夹了。  2)将一个文件夹下的所有内容复制到另一个文件夹下(这种一般是复制很多小文件的时候使用) cp -r /

    2024年02月06日
    浏览(51)
  • Java文件处理(一):创建文件、遍历文件夹、删除文件/文件夹

    本篇以代码为核心,在实践中自学吧年轻人~ 要进行文件处理肯定需要 File 类啦。 File 的实例是一个实例(?),但是可以链接到本地的文件、文件夹,并对它们进行操作。 从下面的一些示例中可以看到,同一份本地文件可以拥有多个File对象;同时,构造一个File对象时传入

    2024年02月05日
    浏览(22)
  • Python-拷贝文件和文件夹到指定的文件夹

    之前使用windows批处理命令,感觉语法太不友好,还需要传很多参数,用起来很麻烦,最后还是用Python来实现。 网上太多的教程,真的不知所云,有点太麻烦了,拷贝之前先删除,也懒得判断。 shutil.copyfile 顾名思义 拷贝的是文件 shutil.copytree 顾名思义 拷贝的是文件夹 这样使

    2024年02月11日
    浏览(16)
  • python判断文件或文件夹是否存在、创建文件夹

    以下的内容参考http://t.csdn.cn/aybFd,https://www.cnblogs.com/hushaojun/p/4533241.html python判断文件或文件夹是否存在、创建文件夹 1、判断文件或文件夹是否存在 2、判断所给路径是文件还是文件夹 3、创建文件夹 4、获取当前.py文件的路径 5、获取指定目录下所有的文件和文件夹 删除一个

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包