我在使用 Visual Studio Express 2013 for Web 时遇到以下错误。它以前在 32 位上工作。我的笔记本电脑是 64 位 Windows。
ERR:无法完成程序集的设置(hr = 0x8007000b)。探测终止。
我已经选择了 64 位 cpu 并且没有任何乐趣来重建解决方案。
我在使用 Visual Studio Express 2013 for Web 时遇到以下错误。它以前在 32 位上工作。我的笔记本电脑是 64 位 Windows。
ERR:无法完成程序集的设置(hr = 0x8007000b)。探测终止。
我已经选择了 64 位 cpu 并且没有任何乐趣来重建解决方案。
如果您进入“工具”->“选项”>“Web 项目”并确保“使用 64 位版本的 IIS Express 用于网站和项目”。这解决了问题。
我的项目具体是 64 位的。
我必须通过添加 64 位版本来更改对 dll 的引用。在我的项目中创建一个名为“x64”的文件夹并添加 dll,其属性为:复制到输出目录:始终复制
我在 Oracle 自述文件中找到了解决方案:
使用以下步骤让您的应用程序使用 64 位版本的 ....dll:
对于 x86 目标应用程序,将文件夹命名为 x86 并从 ...\bin\x86 文件夹添加程序集。
我的项目/解决方案与此处的修复相反:我需要取消选中“将 IIS Express 的 64 位版本用于网站和项目”。我假设该项目是 32 位的,但对我来说唯一破坏的发布模式是“调试”。在没有调试的情况下在浏览器中查看它永远不会编译失败。
我搜索了许多问题的解决方案,所以我想我会在这里添加我的修复。它似乎确实适用于两种方式(如果已选中,请取消选中它!)
这是由于尝试运行 64 位进程或依赖于 32 位的 IIS Express 造成的。
如果您不想像@Shaun Roach 的回答中建议的那样更改所有项目,您可以编辑特定的启动项目属性并将 Web 选项卡中的 Bitness 更改为 64 位,这将添加<Use64BitIISExpress>false</Use64BitIISExpress>
到您的 csproj(顺便说一下与默认值不同<Use64BitIISExpress />
)。