确切的错误如下
无法加载文件或程序集“Microsoft.SqlServer.Replication,Version=9.0.242.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。试图加载格式不正确的程序。
在转移到另一个项目两个月后,我最近再次开始从事这个项目。它以前工作得很好,我已经仔细检查了所有的参考资料。
确切的错误如下
无法加载文件或程序集“Microsoft.SqlServer.Replication,Version=9.0.242.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。试图加载格式不正确的程序。
在转移到另一个项目两个月后,我最近再次开始从事这个项目。它以前工作得很好,我已经仔细检查了所有的参考资料。
下面baldy 的回答是正确的,但您可能还需要在您的 AppPool 中启用 32 位应用程序。
在设置应用程序以在我的本地机器上运行(运行 Vista 64 位)时,我遇到了这个错误:
无法加载文件或程序集
ChilkatDotNet2
或其依赖项之一。试图加载格式不正确的程序。
显然,该应用程序使用了 ChilKat 组件,但我们使用的版本似乎只有 32 位版本。
为了解决这个错误,我在 IIS 中设置了我的应用程序池以允许 32 位应用程序。打开 IIS 管理器,右键单击应用程序池,然后选择高级设置(见下文)
然后将“启用 32 位应用程序”设置为 True。
全部做完!
我找到了解决方案。我最近将我的机器升级到了 Windows 2008 Server 64 位。SqlServer.Replication 命名空间是为 32 位平台编写的。为了让它再次运行,我需要做的就是将 Project Build Properties 中的 Target Platform 设置为 X86。
将 Web 项目属性页上 Platform Target 的值更改为Any CPU
。
转到 IIS -> 应用程序池 -> 高级设置 -> 启用 32 位应用程序
我们最近在尝试从 Visual Studio 运行代码时遇到了问题。在这种情况下,您需要执行
TOOLS > OPTIONS > Projects and Solutions > WEB PROJECTS 并选中“将 IIS Express 的 64 位版本用于网站和项目”。
对于那些在ASP.NET MVC 3项目中遇到此错误的人,在 Visual Studio 本身中:
在我正在开发的 ASP.NET MVC 3 应用程序中,我尝试将 Microsoft.SqlServer.BatchParser 的引用添加到项目中,以解决部署服务器上缺少它的问题。(我们的应用程序使用 SMO;正确的解决方法是在部署服务器上安装 SQL Server Native Client 和其他一些东西。)
即使在我删除了对 BatchParser 的引用之后,在我打开的每个 ASP.NET MVC 3 页面上,我仍然不断收到“尝试了...”错误,引用了 BatchParser DLL,并且该错误之后是几十个页面解析错误。
如果您遇到这种情况,请进行文件搜索并查看 DLL 是否仍在您项目的 \bin 文件夹之一中。 即使您进行重建,Visual Studio 也不一定会清除所有 \bin 文件夹中的所有内容。当我从 bin 中删除 DLL 并重新构建时,错误消失了。
我在针对 IIS Express 的 Windows 10 的 MVC5 应用程序中使用了这个。我的解决方案如下:
将其更改为 32 位(真)它可以工作
如果你得到这个长度不能小于零。参数名称:iis 服务器配置中的长度问题做简单的事情更改 web.config 文件中的连接字符串,如您的 sql 服务器名称和服务器名称,然后重新启动 iis,然后尝试加载它工作的页面
如果在 Visual Studio 2012中发布时出错,请尝试在发布向导中取消选中“发布期间的 Procompile”选项。
在 Windows 窗体应用程序中,我这样做,右键单击 Project->Properties->Build->Check Prefer 32-bit 复选框。谢谢大家
删除位于此处的临时测试目录 C:\Users(User)\AppData\Local\Temp\VisualStudioTestExplorerExtensions\
在 Visual Studio 中将所有项目设置为 x64
将默认处理器架构设置为 x64(Test/TestSettings/Default Processor Architecture)。
确保清理构建解决方案文件。希望这会有所帮助!
将项目属性中的目标框架从 .NET Framework 4.7.1 更改为 4.6.2 对我有用。