我正在尝试在我的应用程序中使用DacFx。我用nuget命令安装了DacFx包:
Install-Package Microsoft.SqlServer.DacFx.x64
之后,我正在遵循本指南:
http://blogs.msmvps.com/deborahk/deploying-a-dacpac-with-dacfx-api/
但是,就行了
dacServiceInstance.Deploy
尝试加载“Microsoft.Data.Tools.Schema.Sql.resources,Version = 13.0.0.0,Culture = ru-RU,PublicKeyToken = b03f5f7f11d50a3a”
时出现System.IO.FileLoadException图书馆就在这里,但是为了获得更多信息,我在FusionLog属性中有这个文本(由我未定位):
The located assembly's manifest definition does not match the assembly reference: CULTURE
Failed to complete setup of assembly (hr = 0x80131040)
正如我可以想象的那样,框架正在尝试加载这个程序集,但不知何故,明显的文化与实际文化不同。我该怎么办?
使用的Nuget包:Microsoft.SqlServer.DacFx.x64版本130.3485.1
应用程序是带有WPF的Windows桌面应用程序,没有MVC或其他Web内容。
我正在使用MSVS 2013,Windows 7俄语(我认为它可能是问题的一部分)
更新:通过将本地文化更改为“en-US”来解决此问题。似乎任何改变它的方法都有效,因为Fusion(.Net程序集加载器)然后不会尝试加载资源程序集。检查了其他文化,例如“pt-BR”,所有文化都被打破了与“ru-RU”相同的错误。我不知道,也许这是一个nuget包故障。 现在我已插入
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
在我的应用程序中,一切正常。请发表评论,如果有更方便的方法来解决这个问题而不改变应用程序的文化。
答案 0 :(得分:0)
好的,我明白了。
MSVS 2013 - 最新更新,最新的SSDT - 不适用于“en-US”以外的文化。从问题中尝试了Nuget包,将DacFx.msi与MS分开 - 没有效果。
MSVS 2015 - 最新更新,最新的SSDT - 与任何文化完美契合。