每当我保存到数据库时,我的应用程序崩溃并出现以下错误.
无法在DLL"SqlServerSpatial110.dll"中找到名为"SetClrFeatureSwitchMap"的入口点.
Windows Update和PC重新启动后,昨天下午开始出现此错误.dll未在项目中引用,也不在bin文件夹中.
我使用EF5,我可以连接到数据库并提取数据但是当我调用ObjectContext.SaveChanges()时会发生错误.
该应用程序不使用几何,所以我不知道它来自何处.
我想签署DLL的原因是因为我想将它添加到全局程序集缓存中.程序集是一个用Java编写并移植到J#的css解析引擎.我使用VS2008所以我不能制作J#项目.它没有分配给它的强名称密钥,我现在不知道如何构建它.
有人有主意吗?
据我所知,.NET运行时将始终首先在GAC中查找引用的程序集,然后在本地文件夹中查找.Web.Config中是否有一个可以反转此顺序的设置?
有没有办法强制使用特定的DLL版本?从app.config?
(backstory)我们正在使用SQL Compact 3.5,并且由于商业原因(我知道)暂时不能转移到SQL Compact 3.5 SP1.我们在构建目录中有System.Data.SqlServerCe和所有非托管dll,但是如果安装了SP1,则应用程序会加载并使用SP1托管dll(并且通过扩展,我也假设非托管dll).
pre-sp1 dll的版本号是3.5.0.0,sp1版本是3.5.1.0
我已将System.Data.SqlServerCe的引用设置为CopyLocal = true且Specific Version = true,但它仍然使用SP1版本,即使pre-sp1版本在我们的构建目录中(假设它使用的是GAC).我尝试添加GAC的引用,以及手动进入文件系统并直接引用dll.
(只是为了说清楚,客户端正在为需要它的其他软件安装Service Pack,但即使安装了Service Pack,我们仍然需要运行pre-sp1版本)
有没有办法强制.net使用我们在构建目录中的那个?
更新:
我在应用程序配置中添加了一个覆盖,就像这个问题,但运行程序集绑定日志查看器给了我:
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Projects\ConsoleApplication11\bin\Debug\ConsoleApplication11.exe.Config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Redirect found in application configuration file: 3.5.0.0 redirected to 3.5.0.0.
LOG: Publisher policy file is found at C:\Windows\assembly\GAC_MSIL\policy.3.5.System.Data.SqlServerCe\3.5.0.0__89845dcd8080cc91\publisher.config.
LOG: Publisher policy file redirect is found: 3.5.0.0 redirected to 3.5.1.0.
LOG: ProcessorArchitecture is locked to MSIL. …Run Code Online (Sandbox Code Playgroud) 我已在本地安装了ASP.NET MVC,但我希望能够使用CodePlex上的SVN存储库中的代码而不是已发布的1.0版本.但是,如果我在我的解决方案中删除对GAC程序集的引用并添加对本地构建的引用System.Web.Mvc,它将构建正常,但在运行时它会说:
分析器错误消息:类型'System.Web.Mvc.ViewPage'是不明确的:它可能来自程序集'W:\ source\projects\vinemedia\VineMedia.Site\bin\System.Web.Mvc.DLL'或来自程序集'C:\ Windows \组件\ GAC_MSIL\System.Web.Mvc\1.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll程序'.请在类型名称中明确指定程序集.