Страницы

Поиск по вопросам

Показаны сообщения с ярлыком windows-server. Показать все сообщения
Показаны сообщения с ярлыком windows-server. Показать все сообщения

суббота, 4 января 2020 г.

Как удалить .NET Framework 4.6?

#net #windows_8 #windows_server


Вместе с Visual Studio 2015 RTM установил .NET Framework 4.6, в связи с чем получил
кучу багов, связанных с Tail Call Optimization, отключение RyuJIT их не лечит - как
мне удалить .NET Framework 4.6 и RyuJIT с машины полностью?

Два кейса - удалить с девелоперской машины (Windows 8.1) и удалить с билд-серверов
(Windows Server 2012R2).
    


Ответы

Ответ 1



Можно просто скачать .NET 4.6 Offline Installer, запустить - и выбрать опцию Remove. Если без инсталлера - то откройте Control Panel / Programs / Programs and Features / Installed Updates. Там найдите и удалите: KB3033095 для RC KB3045557 для RTM Не уверен насчет точного номера - он не появляется при апгрейде через RC. Если не найдете KB3045557 - то ищите по дате установки.

Ответ 2



При попытке удалить фреймворк через инсталлер - мне сообщили какой именно апдейт нужно удалить: KB3045563 в моём случае. https://www.microsoft.com/en-us/download/details.aspx?id=48137 On Windows Vista SP2 / Windows 7 SP1/ Windows Server 2008 SP2 / Windows Server 2008 R2 SP1, you will see the Microsoft .NET Framework 4.6 as an installed product under Programs and Features in Control Panel. • On Windows 8 / Windows Server 2012 you can find this as Update for Microsoft Windows (KB3045562) under Installed Updates in Control Panel. • On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3045563) under Installed Updates in Control Panel. В соответствии с этим, удалить нужно один из апдейтов: KB3045562 KB3045563 Для более старых операционных систем .NET Framework 4.6 появится в установленных Programs and Features.

пятница, 27 декабря 2019 г.

Linux. Инкрементальный бэкап GUEST системы Windows в KVM на LVM

#linux #windows #windows_server #резервное_копирование #lvm


Есть у меня сервер, на нем есть KVM. Стоит в KVM Windows Server 2012R2, диск подключен
как lvm раздел.
Сделать целый бэкап диска не проблема, делаем снапшот а дальше любыми средствами
снимаем архив. А вот как сделать инкрементальный бэкап, ума не приложу.
Или все таки проще делать из самой винды бэкап в host систему? Но такой вариант не
очень нравится.

Да и вообще интересен инкрементальный бэкап не только раздела на котором стоит винда,
но и другие дистрибутивы, тот-же Linux. Acronis же умеет это как-то делать. Хотя там
вроде как обычный dd используется.
    


Ответы

Ответ 1



http://wiki.qemu.org/Features/IncrementalBackup Наслаждайся. Но это сложно. Есть еще lvm thin provisioning. Но он жутко анстейбл. Есть бтрфс чтобы типа на нем хранить qcow2 или raw. но он не так быстр как лвм. Есть зфс но он ест память и не стандартен. В общем, это боль.

Ответ 2



В простейшем случае можно делать хоть через dd+xdelta3, но конечно лучше использовать встроенный в Windows механизм резервного копирования на подключенный выделенный раздел. Если же стоит твердая задача делать именно на хостовой системе, то я бы рекомендовал посмотреть в сторону снэпшотов ZFS и их передачи по сети на сервер бэкапов средствами самой ZFS.

суббота, 21 декабря 2019 г.

System.BadImageFormatException: Невозможно загрузить файл или сборку Newtonsoft.Json

#c_sharp #net #windows_server


Написал приложение с использованием библиотеки Newtonsoft.Json. При попытке запуска
приложения из Visual Studio 2015 или 2013 — все работает, при попытке запуска на трех
разных ПК (разные версии Windows и разные разрядности систем) вне среды VS — все работает,
но при попытке запуска на двух разных (были заказаны у разных хостинг провайдеров)
VPS KVM с Windows Server 2012 R2 x64 (.NET Framework установлен) — приложение не может
загрузить библиотеку Newtonsoft.Json.dll. Проблема возникает только с этой библиотекой.
Пробовал добавлять библиотеку в ресурсы и загружать их них — эффект тот же. Если из
приложения убрать части кода, отвечающие за работу с JSON (то есть удалить использование
самой библиотеки), то все прекрасно везде работает.

Ниже приведена ошибка, которая возникает при запуске:

System.BadImageFormatException: Невозможно загрузить файл или сборку "Newtonsoft.Json,
Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" или один из зависимых
от них компонентов. Ожидалось, что модуль содержит манифест сборки.
Имя файла: "Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"
   в ***.***.ReadAllItemsInfo()
   в ***.Program.Main(String[] args) в C:\---\Program.cs:строка 55

=== Информация о состоянии предварительной привязки ===
Журнал: DisplayName = Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
 (Fully-specified)
Журнал: Appbase = file:///C:/---/
Журнал: Initial PrivatePath = NULL
Вызов сборки: SoketServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

Журнал: данная привязка начинается в контексте загрузки default.
Журнал: используется файл конфигурации приложения: C:\---\---.exe.Config.
Журнал: используется файл конфигурации главного узла: 
Журнал: используется файл конфигурации компьютера из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
Журнал: ссылка после применения политики: Newtonsoft.Json, Version=7.0.0.0, Culture=neutral,
PublicKeyToken=30ad4fe6b2a6aeed
Журнал: попытка загрузки нового URL file:///C:/---/Newtonsoft.Json.DLL.
Ошибка: не удалось завершить установку сборки (hr = 0x80131018). Проверка прекращена.

Void ReadAllItemsInfo()

    


Ответы

Ответ 1



Подобная ошибка может быть в случае, если вы построили проект с AnyCpu, в то время как какая то из подключенных библиотек построена с x86\x64. Как решать такую проблему можно узнать тут: https://stackoverflow.com/questions/270531/how-to-determine-if-a-net-assembly-was-built-for-x86-or-x64 Так же рекомендую проверить версию .net фреймворка и проверить в конфиге версию рантайма: Так же проверьте биндинги:

Ответ 2



Ответ выше мне никак не помог (вероятно потому, что у меня Sharepoint 2013, а не отдельное приложение), оказалось что стоило всего лишь добавить сборку в глобальный кэш сборок: gacutil -i Newtonsoft.Json.dll Утилиту gacutil нужно вызывать из Developer Command Prompt в папке Visual Studio.

понедельник, 4 февраля 2019 г.

Как удалить .NET Framework 4.6?

Вместе с Visual Studio 2015 RTM установил .NET Framework 4.6, в связи с чем получил кучу багов, связанных с Tail Call Optimization, отключение RyuJIT их не лечит - как мне удалить .NET Framework 4.6 и RyuJIT с машины полностью?
Два кейса - удалить с девелоперской машины (Windows 8.1) и удалить с билд-серверов (Windows Server 2012R2).


Ответ

Можно просто скачать .NET 4.6 Offline Installer, запустить - и выбрать опцию Remove.
Если без инсталлера - то откройте Control Panel / Programs / Programs and Features / Installed Updates. Там найдите и удалите:
KB3033095 для RC KB3045557 для RTM
Не уверен насчет точного номера - он не появляется при апгрейде через RC. Если не найдете KB3045557 - то ищите по дате установки.

понедельник, 12 ноября 2018 г.

System.BadImageFormatException: Невозможно загрузить файл или сборку Newtonsoft.Json

Написал приложение с использованием библиотеки Newtonsoft.Json. При попытке запуска приложения из Visual Studio 2015 или 2013 — все работает, при попытке запуска на трех разных ПК (разные версии Windows и разные разрядности систем) вне среды VS — все работает, но при попытке запуска на двух разных (были заказаны у разных хостинг провайдеров) VPS KVM с Windows Server 2012 R2 x64 (.NET Framework установлен) — приложение не может загрузить библиотеку Newtonsoft.Json.dll. Проблема возникает только с этой библиотекой. Пробовал добавлять библиотеку в ресурсы и загружать их них — эффект тот же. Если из приложения убрать части кода, отвечающие за работу с JSON (то есть удалить использование самой библиотеки), то все прекрасно везде работает.
Ниже приведена ошибка, которая возникает при запуске:
System.BadImageFormatException: Невозможно загрузить файл или сборку "Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" или один из зависимых от них компонентов. Ожидалось, что модуль содержит манифест сборки. Имя файла: "Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" в ***.***.ReadAllItemsInfo() в ***.Program.Main(String[] args) в C:\---\Program.cs:строка 55
=== Информация о состоянии предварительной привязки === Журнал: DisplayName = Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed (Fully-specified) Журнал: Appbase = file:///C:/---/ Журнал: Initial PrivatePath = NULL Вызов сборки: SoketServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
Журнал: данная привязка начинается в контексте загрузки default. Журнал: используется файл конфигурации приложения: C:\---\---.exe.Config. Журнал: используется файл конфигурации главного узла: Журнал: используется файл конфигурации компьютера из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. Журнал: ссылка после применения политики: Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed Журнал: попытка загрузки нового URL file:///C:/---/Newtonsoft.Json.DLL. Ошибка: не удалось завершить установку сборки (hr = 0x80131018). Проверка прекращена.
Void ReadAllItemsInfo()


Ответ

Подобная ошибка может быть в случае, если вы построили проект с AnyCpu, в то время как какая то из подключенных библиотек построена с x86\x64.
Как решать такую проблему можно узнать тут: https://stackoverflow.com/questions/270531/how-to-determine-if-a-net-assembly-was-built-for-x86-or-x64
Так же рекомендую проверить версию .net фреймворка и проверить в конфиге версию рантайма:

Так же проверьте биндинги: