.net “帮助调试的提示”;无法加载文件或程序集X或其依赖项之一;
我正在寻找帮助调试应用程序负载问题的提示/建议/见解;无法加载文件或程序集 我遇到此问题的解决方案/项目是从VisualStudio2008中的工作副本转换为VisualStudio2010候选版本。转换过程似乎是成功的,所有解决方案项目都设置为框架4 第三方组件(图形处理库)例外,但任何答案都可能帮助其他人解决任何麻烦的DLL 无法加载文件或程序集“Aurigma.GraphicsMill.DLL”或其依赖项之一。不是有效的Win32应用程序。(HRESULT的异常:0x800700C1) 此异常的混淆之处在于附加文本:不是有效的Win32应用程序 完整的异常堆栈跟踪已启动,但似乎没有对该问题提供更多信息 到目前为止,我所做的尝试没有成功:.net “帮助调试的提示”;无法加载文件或程序集X或其依赖项之一;,.net,exception,visual-studio-2010,assembly-resolution,.net,Exception,Visual Studio 2010,Assembly Resolution,我正在寻找帮助调试应用程序负载问题的提示/建议/见解;无法加载文件或程序集 我遇到此问题的解决方案/项目是从VisualStudio2008中的工作副本转换为VisualStudio2010候选版本。转换过程似乎是成功的,所有解决方案项目都设置为框架4 第三方组件(图形处理库)例外,但任何答案都可能帮助其他人解决任何麻烦的DLL 无法加载文件或程序集“Aurigma.GraphicsMill.DLL”或其依赖项之一。不是有效的Win32应用程序。(HRESULT的异常:0x800700C1) 此
我也没有在应用程序加载时碰到任何调试器断点的运气。当我的可执行项目被设置为任何CPU并且引用了使用x86编译的dll时,我也遇到了类似的异常 尝试将可执行文件设置为x86,看看它是否有效。如果它不尝试获取有关错误的更多详细信息。提示 我们采取的一种调查方法解决了部分问题,但没有解决整个问题,它是x86(32位)和x64(64位)程序集相互引用的混合
确保您没有依赖于/引用64位程序集的32位程序集。我发现此问题的原因是,由于您已切换到.net v4,您现在正在IIS7中使用一个新的应用程序池,专门用于asp.net v4(该池本身称为“asp.net v4.0”) 在应用程序池的“高级设置”部分,将“启用32位应用程序”设置为true,此时问题DLL将按预期加载 显然,如果web应用程序有自己的应用程序池,您也应该这样做
如果您使用的是Windows Server 2008(不是R2),请参阅更改应用程序池的“高级设置”部分->将“启用32位应用程序”设置为true,这样就解决了我的问题。奇怪的是,我也遇到了同样的问题,我在应用程序池的“高级设置”中允许32位应用程序,然后就成功了 这是因为您试图加载32位的二进制依赖项(您的
Bin
文件夹中的一个文件),并且您的应用程序正在64位模式下运行
在.Net 4和IIS 7中,应用程序池默认以64位模式运行
大多数.Net二进制文件都是使用在其构建属性中设置的任何CPU
编译的。这意味着它们在32位和64位模式下工作
< .NET中编写的大多数C++和C应用程序需要专门编译为32位或64位。这意味着,如果您使用的是错误的bin部署版本的依赖项,它将无法加载
这可以通过以下方法之一解决:
如果要保留32位引用/依赖项:
- 在IIS管理方面李>
- 应用程序池->高级设置(右侧)
- “已启用32位应用程序”设置为True
- 重新启动应用程序池
Bin
文件夹中的32位二进制文件替换为64位二进制文件。IIS加载它不会有问题检查DLL是否被阻止。
右键单击Dll>属性>取消阻止。谢谢,目标平台没有帮助,fusion日志也没有帮助,出于未知原因,它不喜欢报告加载问题,它在左运行时报告了其他问题。。。