gpt4 book ai didi

c# - 无法加载文件或程序集 'XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一

转载 作者:太空狗 更新时间:2023-10-29 20:30:07 26 4
gpt4 key购买 nike

我一直在尝试调试这个错误:

System.IO.FileNotFoundException: Could not load file or assembly 'ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. File name: 'ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

我看到了很多解决方案并尝试了所有这些。

我在查看 Fusion Viewer 时收到以下消息:

LOG: This bind starts in default load context. LOG: Using application configuration file: I:\Projects\ACE Explorer\AceV_1Explorer\AceExplorer\AceExplorer\bin\Debug\AceExplorer.exe.config LOG: Using host configuration file: LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. LOG: Post-policy reference: ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null LOG: GAC Lookup was unsuccessful. LOG: Attempting download of new URL file:///I:/Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.DLL. LOG: Attempting download of new URL file:///I:/Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.DLL. LOG: Attempting download of new URL file:///I:/Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.EXE. LOG: Attempting download of new URL file:///I:/Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.EXE. LOG: All probing URLs attempted and failed.

我在目录中看到文件,所有使用 x86 的目标框架都是 4.0

找出问题的任何想法

已更新对困惑感到抱歉。在日志中它是 PublicKeyToken=null。我正在尝试一切。

更新我在主程序中添加了一些代码,这些代码将使用 ResolveEventHandler 解析程序集。一开始没用。但是当我让程序在程序开始时加载那些外部程序集 (LoadReferences()) 时,它确实起作用了。很奇怪,因为当我在开始的 LoadReferences() 中加载它们时路径完全相同,然后当该方法输入对触发 CurrentDomain_AssemblyResolve 的自定义程序集的引用时。空白路径解析为程序集路径。如您所见,在 LoadReferences() 中,我添加了 EntityFramework,这会导致同样的问题,即使我使用的是 Nuget。

在 Main() 中我添加了:

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
LoadReferences();



private static void LoadReferences()
{
Assembly objExecutingAssemblies;
objExecutingAssemblies = Assembly.GetExecutingAssembly();
AssemblyName[] arrReferencedAssmbNames = objExecutingAssemblies.GetReferencedAssemblies();
Assembly asm;
foreach (AssemblyName strAssmbName in arrReferencedAssmbNames)
{
if (strAssmbName.FullName.ToLower().Contains("[company].") || strAssmbName.FullName.ToLower().Contains("entityframework"))
asm = Assembly.LoadFrom(Path.Combine("", strAssmbName.FullName.Substring(0, strAssmbName.FullName.IndexOf(","))+ ".dll"));


}
// these were also posing an issue
asm = Assembly.LoadFrom(Path.Combine("", "EntityFramework.dll"));
asm = Assembly.LoadFrom(Path.Combine("", "EntityFramework.SqlServer.dll"));


}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assembliesDir = "";
try
{
string dll = (args.Name.IndexOf(",") < 0 ? args.Name + ".dll" : args.Name.Substring(0, args.Name.IndexOf(",")) + ".dll");
Assembly asm = Assembly.LoadFrom(Path.Combine(assembliesDir, dll));
return asm;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

return null;
}

还有。不确定这是否有所作为,但这是完全信任的点击一次。

我们的桌面也非常锁定。

此外,所有项目的平台都设置为 x86。

最佳答案

file:///I:/Projects/ACE Explorer/.../bin/Debug/ClassLibrary1.DLL.

这道题需要心理调试。 Fusion 被要求解析 I: 驱动器上的路径。这通常是一个映射到文件服务器上共享的驱动器号。而且经常这样麻烦。鉴于对安全性的过度关注,ACE 很可能是 Access Control Entry 的首字母缩写词。 .这使得该程序很可能使用模拟来“探索”访问权限。这使得 Fusion 很可能无法弄清楚 I: 驱动器可能指的是什么,驱动器映射是每个用户设置。

在程序早期工作正常,因为它仍然使用默认用户 token 运行。一旦部署了程序,它就可以正常工作,因为它现在有一个不依赖于驱动器号映射的稳定位置。

不知道该推荐什么,我是《日内瓦程序员权利公约》的创始成员。这要求程序员可以在他们的本地驱动器上创建和测试程序,并安装他们需要的调试工具来找出他们的程序为什么不能运行。这是您的 IT 人员需要解决的问题。如果这能让你控制你的开发机器,那么你就领先了。考虑到 Google 为“映射驱动器上的 .net 调试项目”查询返回的命中类型,这是一个可能的结果。

关于c# - 无法加载文件或程序集 'XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37081653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com