Страница 1 из 1

Проблема после обновления до текущего предрелизного билда

Добавлено: 08 июл 2015, 16:12
DmitryRu
Я использую продукт Stimulsoft.Reports.Web.
У меня была установлена релизная версия 2015.1.0
Потом я обновился до предрелизной 2015.1.4, насколько помню, это рекомендуется делать простым копирование .dll поверх установленного дистрибутива.
Сейчас, при сборке моего проекта, получаю сообщения об ошибках компиляции:

Код: Выделить всё

Error	2	The call is ambiguous between the following methods or properties: 'Stimulsoft.Report.Mvc.StiMvcBaseHelper.Stimulsoft(System.Web.Mvc.HtmlHelper)' and 'Stimulsoft.Report.Mvc.StiMvcBaseHelper.Stimulsoft(System.Web.Mvc.HtmlHelper)'	c:\Projects\Reporting\StiMvcViewer.cshtml	13	MyProject

Error	3	The type 'Stimulsoft.Report.Mvc.StiMvcViewerOptions' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Stimulsoft.Report.Mvc\v4.0_2015.1.4.0__ebe6666cba19647a\Stimulsoft.Report.Mvc.dll' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Stimulsoft.Report.Mvc\v4.0_2015.1.0.0__ebe6666cba19647a\Stimulsoft.Report.Mvc.dll'	c:\Projects\Reporting\StiMvcViewer.cshtml	15	My Project
То есть, в GAC попали обе версии библиотеки, что проблема.
Притом, если зайти проводником по адресу
C:\Windows\assembly, то я вообще Ваших библиотек там не вижу.
OS: Window 7 Enterprise
Запустил из вашего дистрибутива команду Installer.exe /ungac, она удалила мне из GAC версию 2015.1.4
gacutil отказывается удалять версию 2015.1.0, говорит

Код: Выделить всё

C:\Windows\system32>gacutil /u "Stimulsoft.Report.Mvc, Version=2015.1.0.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a, processorArchitecture=MSIL"
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly: Stimulsoft.Report.Mvc, Version=2015.1.0.0, Culture=neutral, PublicKeyToken=ebe6666cba19647a, processorArchitecture=MSIL
Unable to uninstall: assembly is required by one or more applications
Pending references:
              SCHEME: <WINDOWS_INSTALLER>  ID: <MSI>  DESCRIPTION : <Windows Installer>
Number of assemblies uninstalled = 0
Number of failures = 0
После удаления версии 2015.1.4 компилятор говорит:

Код: Выделить всё

Error	Error	3	The type 'Stimulsoft.Report.Mvc.StiMvcViewerOptions' exists in both 'c:\Users\dima\AppData\Local\Temp\Temporary ASP.NET Files\temp\1a6a722d\d0f80ec1\assembly\dl3\0ddb6263\004ca355_2f91d001\Stimulsoft.Report.Mvc.DLL' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Stimulsoft.Report.Mvc\v4.0_2015.1.0.0__ebe6666cba19647a\Stimulsoft.Report.Mvc.dll'	c:\Projects\Reporting\StiMvcViewer.cshtml	15	My Project
Причем удаление файла из AppData не помогает, ситуация повторяется при перекомпиляции.

Я как-то неправильно обновился до предрелизного билда?
Похоже, что единственный способ, снести дистрибутив 2015.1.0, но как-то это чрезмерно....

Re: Проблема после обновления до текущего предрелизного билд

Добавлено: 08 июл 2015, 17:28
HighAley
Здравствуйте, Дмитрий.

.Net Framework и Visual Studio любит распихивать сборки по разным временным папкам. Потом их практически невозможно оттуда удалить. Единственный способ, который мы пока знаем -- это ручной поиск и удаление.

В папке C:\Windows\assembly накодится GAC CLR 2.0, а наши сборки лежат в GAC CLR 4.0 (c:\Windows\Microsoft.NET\assembly\). Также CLR 4 создаёт папку для каждой сборки, из-за чего могут возникать подобные конфликты версий.

Удалите, пожалуйста наши релизные сборки из GAC и временных папок (c:\Users\dima\AppData\Local\Temp\Temporary ASP.NET Files\) вручную, и используйте наш последний предрелизный билд, который достаточно просто скопировать в папку bin.

Спасибо.

Re: Проблема после обновления до текущего предрелизного билд

Добавлено: 09 июл 2015, 09:40
DmitryRu
При внимательном рассмотрении оказалось, что в одном из проектов (а их в моем solutution несколько) я забыл обновить версию библиотек в файле web.config, т.е. там была прописана старая версия в разделе

Код: Выделить всё

        <compilation debug="true" targetFramework="4.0">
            <assemblies>
Возможно, проблема в этом.
А пока я просто скопировал дистрибутив Stimulsoft.Report.Web в другой каталог и деинсталлировал дистрибутив.
Дизайнер вроде запускается, а библиотеки Стимулсофт все равно включены в состав проекта явно.

Мне не понравилась идея при каждом обновлении ваших библиотек заниматься танцами с удалением из GAC

Re: Проблема после обновления до текущего предрелизного билд

Добавлено: 10 июл 2015, 11:25
HighAley
Здравствуйте.

При установке в GAC сборки устанавливаются автоматически. Потом их можно удалять с помощью Installer.exe и сборки предрелизных билдов можно туда не ставить.
К сожалению, такие принципы работы .Net Framework.

Спасибо.

Re: Проблема после обновления до текущего предрелизного билд

Добавлено: 10 июл 2015, 11:49
DmitryRu
При обновлении на текущий предрелизный build, Installer.exe заменяется на текущий.
Он не может убрать из GAC релизные .dll-ки, он убирает из GAC .dll с предрелизной версией.

Другими словами, при обновлении до текущего предрелизного билда надо сначала запустить Installer.exe /ungac, а только потом копировать поверх релизного Intstaller.exe тот, который входит в предрелизную версию.

Возможно это где-то и описано на Вашем сайте, так сразу не нашел.
Лучше бы это было в readme файле, который входит в состав предрелизного .zip файла

Re: Проблема после обновления до текущего предрелизного билд

Добавлено: 10 июл 2015, 15:49
HighAley
Здравствуйте.

Да, именно в такой последовательности это делать и надо.
Мы обсудим куда лучше добавить это описание.

Спасибо.