Как исправить ошибку в dll-библиотеке WindowsBase фреймфорка Mono на Mac?

Написал небольшую программку для обработки xlsx таблиц, при выполнении ругается
Unhandled Exception:
System.IO.IOException: Operation not valid when package is read-only
  at System.IO.Packaging.Package.CheckIsReadOnly () [0x0000c] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/Package.cs:113 
  at System.IO.Packaging.PackagePart.CreateRelationship (System.Uri targetUri, TargetMode targetMode, System.String relationshipType, System.String id, Boolean loading) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:128 
  at System.IO.Packaging.PackagePart.LoadRelationships (System.Collections.Generic.Dictionary`2 relationships, System.IO.Stream stream) [0x0008f] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:168 
  at System.IO.Packaging.PackagePart.get_Relationships () [0x00048] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:50 
  at System.IO.Packaging.PackagePart.GetRelationships () [0x00016] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:192 
  at DocumentFormat.OpenXml.Packaging.PackagePartRelationshipPropertyCollection..ctor (System.IO.Packaging.PackagePart packagePart) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPart.Load (DocumentFormat.OpenXml.Packaging.OpenXmlPackage openXmlPackage, DocumentFormat.OpenXml.Packaging.OpenXmlPart parent, System.Uri uriTarget, System.String id, System.Collections.Generic.Dictionary`2 loadedParts) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.LoadReferencedPartsAndRelationships (DocumentFormat.OpenXml.Packaging.OpenXmlPackage openXmlPackage, DocumentFormat.OpenXml.Packaging.OpenXmlPart sourcePart, DocumentFormat.OpenXml.Packaging.RelationshipCollection relationshipCollection, System.Collections.Generic.Dictionary`2 loadedParts) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Load () [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.IOException: Operation not valid when package is read-only
  at System.IO.Packaging.Package.CheckIsReadOnly () [0x0000c] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/Package.cs:113 
  at System.IO.Packaging.PackagePart.CreateRelationship (System.Uri targetUri, TargetMode targetMode, System.String relationshipType, System.String id, Boolean loading) [0x00000] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:128 
  at System.IO.Packaging.PackagePart.LoadRelationships (System.Collections.Generic.Dictionary`2 relationships, System.IO.Stream stream) [0x0008f] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:168 
  at System.IO.Packaging.PackagePart.get_Relationships () [0x00048] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:50 
  at System.IO.Packaging.PackagePart.GetRelationships () [0x00016] in /private/tmp/source-mono-mac-4.0.0-branch-c5sr4/bockbuild-mono-4.0.0-branch/profiles/mono-mac-xamarin/build-root/mono-4.0.4/mcs/class/WindowsBase/System.IO.Packaging/PackagePart.cs:192 
  at DocumentFormat.OpenXml.Packaging.PackagePartRelationshipPropertyCollection..ctor (System.IO.Packaging.PackagePart packagePart) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPart.Load (DocumentFormat.OpenXml.Packaging.OpenXmlPackage openXmlPackage, DocumentFormat.OpenXml.Packaging.OpenXmlPart parent, System.Uri uriTarget, System.String id, System.Collections.Generic.Dictionary`2 loadedParts) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPartContainer.LoadReferencedPartsAndRelationships (DocumentFormat.OpenXml.Packaging.OpenXmlPackage openXmlPackage, DocumentFormat.OpenXml.Packaging.OpenXmlPart sourcePart, DocumentFormat.OpenXml.Packaging.RelationshipCollection relationshipCollection, System.Collections.Generic.Dictionary`2 loadedParts) [0x00000] in <filename unknown>:0 
  at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Load () [0x00000] in <filename unknown>:0 

Press any key to continue...

Судя по этому топику проблема заключается в dll-библиотеке WindowsBase, которую исправил вот этим коммитом.
Теперь вопрос: как мне исправить эту же ошибку у себя? Подходящий редактор dll-библиотек не нашел под мак, а при попытке самостоятельно сколотить dll из скаченного с гита архива, где уже исправлена ошибка, компилятор выдает кучу ошибок и даже не хочет строить.
Помогите, потратил уже 2 дня на это.
  • Вопрос задан
  • 517 просмотров
Решения вопроса 1
@magazovski
# установим утилиты нужные для сборки c помощью Homebrew http://brew.sh
brew install autoconf automake libtool pkg-config
# склонируем гит репозиторий
mkdir ~/mono && cd ~/mono
git clone https://github.com/mono/mono.git .
# конфигурируем
export PREFIX=/usr/local
./autogen.sh --prefix=$PREFIX --disable-nls
# скачаем последний релиз моно - он нужен чтобы самого себя собрать, на мой взгляд - бред 
make get-monolite-latest
# компиляем
make
# устанавливаем
make install


Profit1111
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы