- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在尝试调试这个错误:
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/
我遇到了一个使用内置全局化工具的 ASP.NET 应用程序崩溃的情况。 在带有 Culture="auto"指令的 ASP.NET 页面上,使用中性文化作为其浏览器语言(例如“zh-Hans”)的用户
某些类中是否有属性可以告诉我当前文化是否实际上是默认文化。 类似于本地化如何与 winforms 一起工作。如果语言是默认语言,它会以表格形式说明。 假设我在 en-US 中 - 我如何通过代码判断
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我知道这有点离题,但是当我们的应用程序出现问题时,IT 开发中使用的名称“BUG”的起源是什么? 最佳答案 因为一只蝴蝶被困在电脑里,它造成了一个错误。这是真的! 关于culture - 名称错误的起
他想知道我们是否应该有弹性工作时间,允许与工作无关的互联网访问等的意见。 我们公司大约有 200 人,一半是程序员,一半是销售。我们都希望工作场所富有成效且充满乐趣。 我应该提出哪些问题? 支持和反对
他们用拉丁语编码吗? 他们有自己的编程语言吗? 我只是好奇。 最佳答案 我为 Microsoft Windows 和 Office 维护韩文 IME(输入法编辑器)。因此,我每天与韩国开发者合作,定期
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我有一个云服务 Web 角色,需要在其上运行一些 PowerShell 以确保服务器始终设置在正确的区域性中:en-AU。 原因是 Microsoft 可以随时重置文化值(value)观。 当我运行时
我目前正致力于在 Kentico 8.2 中推出韩文版网站,并处理该网站的本地和开发版本。 我可以让一个页面以韩语加载,甚至可以在导航时以韩语加载一些后续页面。通常我导航到的第三或第四页将恢复为英语。
每当我添加 i18n.en.xml或类似的(只需以 .xml 结尾)并编译我的项目,该文件被编译成 en/.resources.dll ,尽管如此,我只是想将它作为资源单独嵌入到主程序集中。 我已将其
我发现我的机器和构建服务器上的测试结果不同。我设法找到了不同的单行。这是一个字符串比较。这两个字符串的第一个字符不同。 下面的测试在我的本地机器上通过了,但在构建机器上失败了。 [TestClass]
嗯,我正在尝试获取文化的默认日期格式。 例如,en-us 有“m/dd/yyyy”,en-uk 有“d/mm/yyyy”。文化可以是客户端机器上的任何东西。和 Dateformat 也可以是任何东西。
我最近在我的 powershell 脚本中与文化相关的返回值遇到了一些问题。相同的脚本返回不同的值,具体取决于它是哪台机器。 所以我认为可能文化设置不同,并且对于一台服务器它返回了。 get-cult
我正在尝试编写着陆页代码,通过阅读 Culture 来决定是将请求重定向到英文网站还是斯洛伐克语网站。 代码如下: public partial class _default : System.Web
这是一个 SEO 问题: 我可以选择根据访问者的文化显示页面标题。 如果是英文: getCulture() == 'en') : ?> Hello, this is an englis
CA1305当存在需要 IFormatProvider 的重载但代码中未使用此重载时引发。 例如,以下代码会引发此警告: string.Format("{0} - {1}", id, name); 消
我创建了一个 WPF 转换器类: public class DoubleConverter : IValueConverter { public object Convert(object v
我想要的是..如果文化是 en-US 那么 string dateFormat="MM/dd/yyyy"; string timeFormat="24.00 hrs"; 如果文化是 en-GB 那么
我想修改我的 UWP 应用,使其根据平台语言的不同而略有不同。我知道我可以在使用 C# 编程时获取文化信息,但这个应用程序是用 JavaScript 编写的。 我搜索了 MSDN 并查看了 gitHu
我是一名优秀的程序员,十分优秀!