繁体   English   中英

应用程序无法启动,因为它的并行配置不正确

[英]The application has failed to start because its side-by-side configuration is incorrect

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“ TheLibrary ,版本=1.2.3905.36284,Culture=neutral,PublicKeyToken=14 04827c3a8f2601”或其依赖项之一。 应用程序无法启动,因为其并行配置不正确。 有关更多详细信息,请参阅应用程序事件日志。 (来自 HRESULT 的异常:0x800736B1)文件名:' TheLibrary ,版本=1.2.3905.36284,Culture=neutral,PublicKe yToken=1404827c3a8f2601'---> System.Runtime.InteropServices.COM01启动失败(0x88)因为它的并排配置是不正确的。 有关更多详细信息,请参阅应用程序事件日志。 (来自 HRESULT 的异常:0x800736B1)

当我查看事件日志时,出现此错误。

“C:\\project\\Debug\\MyLibrary.dll”的激活上下文生成失败。 无法找到相关程序集 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 请使用 sxstrace.exe 进行详细诊断。

我使用sxstrace记录错误,结果如下:

================ 开始激活上下文生成。 输入参数:Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = en-US;en ManifestPath = C:\\Windows\\system32\\cmd.exe AssemblyDirectory = C:\\Windows\\system32\\ Application Config File = --------- -------- 信息:解析清单文件 C:\\Windows\\system32\\cmd.exe。 信息:清单定义标识是 Microsoft.Windows.FileSystem.CMD,processorArchitecture="x86",type="win32",version="5.1.0.0"。 信息:激活上下文生成成功。 结束激活上下文生成。

================ 开始激活上下文生成。 输入参数:Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = en-US;en ManifestPath = C:\\Debug\\TheLibrary.dll AssemblyDirectory = C:\\Debug\\ Application Config File = ------------- ---- 信息:解析清单文件 C:\\Debug\\TheLibrary.dll。 信息:清单定义标识为(空)。 信息:参考:Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" 信息:解析参考 Microsoft.VC90.DebugCRT,processorArchitecture="x86" ,publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 信息:正在解析 ProcessorArchitecture x86 的参考。 信息:解决文化中性的参考。 信息:应用绑定策略。 信息:未找到发布商政策。 信息:未找到绑定策略重定向。 信息:开始装配探测。 信息:在 WinSxS 中没有找到程序集。 信息:尝试在 C:\\Windows\\assembly\\GAC_32\\Microsoft.VC90.DebugCRT\\9.0.21022.8__1fc8b3b9a1e18e3b\\Microsoft.VC90.DebugCRT.DLL 处探测清单。 信息:尝试在 C:\\Debug\\Microsoft.VC90.DebugCRT.DLL 处探测清单。 信息:尝试在 C:\\Debug\\Microsoft.VC90.DebugCRT.MANIFEST 处探测清单。 信息:尝试在 C:\\Debug\\Microsoft.VC90.DebugCRT\\Microsoft.VC90.DebugCRT.DLL 处探测清单。 信息:尝试在 C:\\Debug\\Microsoft.VC90.DebugCRT\\Microsoft.VC90.DebugCRT.MANIFEST 处探测清单。 信息:没有找到文化中性的清单。 信息:结束装配探测。 错误:无法解析参考 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 错误:激活上下文生成失败。 结束激活上下文生成。

无法解析参考Microsoft.VC90.DebugCRT,processorArchitecture=...

有任何想法吗?

我们刚刚遇到了完全相同的错误,但与错误相比,原因是如此具有误导性,希望值得在此处添加,因为它在 google 上名列前茅......

启动 Windows 服务时出现“应用程序无法启动,因为其并行配置不正确”错误。 在我们的实例中,这是由服务 application.config xml 文件无效引起的- 有人手动编辑了它并将其粘贴到额外的结束标记中。 修改此解决了“不以任何方式相关”错误消息。

检查这一点的最快方法是将 xml 文件粘贴到网络上许多免费的在线 xml 验证器之一。

依赖程序集 Microsoft.VC90.DebugCRT,... 找不到

是的,只能在安装了 Visual Studio 的机器上找到。 DebugCRT 不可分发。 它没有意义编写C或C ++代码,并为其部署调试版本,它是慢了很多

部署 DLL 的发布版本。 以及 VC++ 库,安装项目的先决条件中的复选框之一。

这被标记为 C#,所以我会给出 C# 的答案:有些东西已经损坏了您的 projectname.exe.config 文件。

在文本编辑器中拉起它,很可能某些东西无法正确关闭,或者最后会有一些垃圾字符。 你可以弄清楚为什么会发生这种情况。 但是现在,只需修复它,您就可以启动了。

您可以从应用程序路径中删除清单文件,然后可执行文件将正常工作,

真正检查您是否使用的是 Windows 7(8 和 Vista 必须相同)

从控制面板系统管理工具打开并选择事件查看器

单击 windows 日志-> 应用程序

在并排列下找到您的错误日志

请注意发生错误的行号。

然后用这样的编辑器写或记事本打开 yourfilename.exe.manifest

然后从行号</ to />删除行并保存文件

您的问题已解决。

我想找出可能出现此错误的另一个原因: *.config文件的错误编码。

该文件需要为UTF-8 ,而现在您实际上可以通过使用notepad.exe手动创建配置文件来意外获得ANSI

我发现并排错误 app.config 文件中存在不匹配或系统错误。 在您的 app.config 文件中找到错误更正它。

我遇到了这个问题,这是 app.manifest 文件的assemblyIdentity元素中version值的一个简单问题。 显然version必须具有所有四个数字(除非assemblyIdentity被忽略,如果嵌入清单就是这种情况)。

所以这里的修复:

<assemblyIdentity name="MyApplication" version="1.0.1" publicKeyToken="D3567E058552E2DF" type="win32" processorArchitecture="x86" />

是设置

version="1.0.1.0"

在那之后,一切都是笨拙的。

确保您没有错位的配置,例如 http Web 服务绑定中的<httpsTransport>

就我而言,我正在使用一个在 c# 中构建的控制台应用程序,我使用的是 VS 2017。我尝试通过右键单击项目并选择发布选项来发布代码,然后配置所需的设置。 它没有在配置的路径上发布 exe,但是每当我尝试编译或构建应用程序时,我都会遇到这种错误。 我在谷歌上搜索那个错误信息,我遇到了这个问题。 这个答案似乎与问题无关,但我仍然为像我这样因为面临像我这样的问题而来到这里的人发布我的答案。 所以我找到了对我的问题的称呼,步骤如下:

  1. 转到项目文件,右键单击它
  2. 转到属性选项
  3. 转到签名选项
  4. 取消选中名为“签署 ClickOnce 清单”的复选框。 现在,当我再次尝试构建控制台应用程序时,它向我显示了一条警告消息,我忽略了该消息并且它成功构建并且工作正常。 我已经分享了我尝试过的一切,试图帮助像我这样的人。 谢谢

这通常是App.config 文件中错误

有时,您只是放置了一个无效的标签,或者您的 XML 的格式无效。

尝试使用一些 XML 在线验证器检查 XML。

关于允许的标签,您可以在此处找到更多信息:

https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/

如果您的 App.config 文件中的某些内容未出现在文档中,则可能应该将其放置在 configuration 的另一部分中 例如,在 app.manifest 文件中。 您甚至可以在谷歌上搜索新添加的代码,例如某些标签或属性,并通过比较您拥有的代码与搜索结果的一致性来找出错误。 这是意外切换文件错误键入标签的常见错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM