Не може да се използва System.IO.Compression и SQLite, посочени в проект WP8.1

Имам странна грешка в моя проект Windows Phone 8.1 Silverlight. Току-що създадох малък тестов проект и получих същото поведение:

Ако инсталирам "Microsoft.Bcl.Compression"

и след това "SQLite.Net.Platform.WindowsPhone8"

чрез NuGet получавам следното изключение, ако се опитам да компресирам файл, дори ако изобщо не използвам SQLite.NET в нито един ред.

В следния код при enter.Open():

var entry = archive.CreateEntry(Path.GetFileName(file.Name));

using (var entryStream = entry.Open())

Възникна изключение от тип „System.IO.Compression.ZLibException“ в mscorlib.ni.dll, но не беше обработено в потребителския код

Допълнителна информация: Основната програма за компресиране не може да бъде заредена правилно.

Ако премахна SQLite от проекта, тогава компресията работи успешно, както се очаква.

Използвах компресията няколко месеца без проблеми и след това добавих поддръжка на SQLite.NET и сега попаднах в странно изключение.

Правя ли нещо грешно?

Малък тестов проект: CompressionAndSQLiteExample.zip


person waldemarhuber    schedule 23.02.2015    source източник


Отговори (1)


Има проблем със скрипта Microsoft.Bcl.Compression.targets, тъй като той използва същото целево име като sqlite-net-wp8, InjectReference.

Промених InjectReference на BCLCompressionInjectReference и презаредих проекта и сега работи добре.

person Ryan    schedule 24.02.2015
comment
Благодаря ти много! Това наистина реши проблема ми! Току-що направих промените, които описахте във файла \packages\Microsoft.Bcl.Compression.3.9.85\build\wp8\Microsoft.Bcl.Compression.targets voilà :) - person waldemarhuber; 25.02.2015
comment
Изглежда, че повечето пакети на SQLite са променили именуването на Target, за да избегнат това, но sqlite-net-wp8 все още има проблема в 3.8.5. Той е адресиран в тяхното репо, но все още не е пуснат в nuget: github.com/peterhuene /sqlite-net-wp8/commit/ - person Rich; 25.02.2016