我试图在我的应用程序中使用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"时,我得到system . io . fileloadeexception。资源,版本=13.0.0.0,文化=ru-RU, PublicKeyToken=b03f5f7f11d50a3a"
图书馆在的地方,但对于额外的信息,我有这个文本(未本地化由我)在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
应用程序是Windows桌面应用程序与WPF,没有MVC或其他web的东西。
我正在使用MSVS 2013, Windows 7俄语(我认为,这可能是问题的一部分)
UPDATE:通过将本地文化更改为"en-US"存在解决方案。似乎任何改变它的方法都是有效的,因为核聚变(Fusion)。. Net程序集加载器)则不会尝试加载资源程序集。检查其他文化,比如"pt-BR",都和"ru-RU"有同样的错误。我不知道,也许是核包故障。现在我插入了
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
,一切正常。如果有更方便的方法来解决这个问题,而不改变应用程序的文化,请发表评论。
好的,我知道了。
MSVS 2013 -最新的更新,最新的SSDT -不与"en-US"以外的文化工作。尝试Nuget包从问题,单独的DacFx。msi from MS - NO EFFECT.
MSVS 2015 -最新更新,最新的SSDT -适用于任何文化