Подтвердить что ты не робот

Ошибки проекта Windows Azure. CctSharedPackage не загружался правильно

Я открыл файл решения, который работал нормально и получил эту загадочную ошибку

"CctSharedPackage" загрузился неправильно

Этот проект был проектом Windows Azure 2.1, который не работал на прошлой неделе, однако между тем и перезагрузкой он больше не будет загружаться в Visual Studio 2012. Это произошло на машине, на которой установлен Windows Azure SDK 2.1 (на прошлой неделе проект работал нормально)

Ошибка, указанная для проверки файла c:\Users\{user}\AppData\Roaming\Microsoft\VisualStudio\11.0\ActivityLog.xml для получения дополнительной информации.

В этом файле говорится: "Не удалось найти сборку Microsoft.Azure.Diagnostics ver 2.1".

4b9b3361

Ответ 1

Увидев, что Windows Azure SDK 2.1 уже установлен, я перезагрузил установщик и пошел запускать его, чтобы попросить его переустановить или восстановить установку. Поскольку установка является установщиком веб-платформы, она не предоставила ни один из этих параметров. На этом этапе я решил удалить SDK, чтобы переустановить его из "Установка и удаление программ".

Когда я пошел в "Установка и удаление программ", я увидел, что там были установки для Windows Azure Libraries для .NET - v1.8 и Windows Azure Authoring Tools - v1.8. Я удалил обе эти установки, и тогда проект смог успешно загрузить.

Ответ 2

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

Я недавно опубликовал об этом в своем блоге → здесь

C:\Program Files (x86)\Windows Azure Tools\Visual Studio 11.0>gacutil /i .\Microsoft.VisualStudio.WindowsAzure.Diagnostics.dll

Ответ 3

У меня не установлен 1.8 SDK. Я считаю, что это обновление Windows, относящееся к .Net 3.5, которое могло сломать мою установку. Чтобы исправить все, что я сделал, это открыть Explorer в Windows 8 и выбрать опцию "Удалить или изменить программу" на ленте.

Искать Azure, и когда была возможность "восстановить", я отремонтировал программу. FIXED

Ответ 4

Я столкнулся с аналогичной проблемой ( "CctSharedPackage" загрузился неправильно). В моем случае запуск Visual Studio с запуском как администратор решил проблему.

Ответ 5

Я также столкнулся с этим пролемом сегодня, но для меня, к счастью, он был решен только путем перезапуска Visual Studio 2012. Просто попробуйте хотя бы один раз, чтобы быть уверенным:-)!

Ответ 6

У меня была такая же проблема. Повторная установка SDK не помогла и переустановка Visual Studio звучит слишком болезненно, поэтому я решил выяснить, что вызывает ошибку.

Я использовал другой экземпляр Visual Studio и привязал его для отладки оскорбительного экземпляра Visual Studio. Я не мог видеть, где происходит точная ошибка, но я смог увидеть, в какой библиотеке произошло исключение, и мог видеть исходный код с помощью .NET Reflector, чтобы получить представление о том, что он делает.

При запуске библиотека Microsoft.Cct.CctSharedPackage выполняет итерацию через все SDK Azure, чтобы выяснить, какие из них установлены на вашем компьютере.

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

На моем компьютере оказался Azure SDK 1.6, который был испорчен. SDK был установлен, но свойство TargetAzureLibraries возвращалось как null. Я удалил этот SDK, и он исправил проблему.

Консольное приложение ниже:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WindowWidth = 240;

            // The Microsft.Cct.AssemblyResolver does this:
            /*
        private IEnumerable<IAzureToolsVersionInfo> GetInstalledSDKsByProductVersionDesc(IServiceProvider serviceProvider) => 
            (from knownProduct in AzureToolsVersionInfoUtilities.GetAllProducts()
                where knownProduct.TargetAzureSDK.IsSDKInstalled() && knownProduct.TargetAzureLibraries.IsLibrariesInstalled()
                orderby knownProduct.ProductVersion descending
                select knownProduct)
            */
            // Duplicate this logic using reflection to find the SDK install that is broken.

            var asm = System.Reflection.Assembly.LoadFile("C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\Microsoft\\Windows Azure Tools\\Microsoft.VisualStudio.WindowsAzure.Common.2.8.dll");
            var typ = asm.GetType("Microsoft.Cct.ProductVersionInfo.AzureToolsVersionInfoConstants");
            //Console.WriteLine(typ.ToString());
            var allMethods = typ.GetFields(BindingFlags.Static | BindingFlags.Public).Select(it => it.Name).ToArray();
            allMethods = allMethods.Where(it => it.StartsWith("WAT") && it.Length == 5).OrderBy(it => it).ToArray();
            foreach (string version in allMethods)
            {
                var fld = typ.GetField(version, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
                dynamic val = fld.GetValue(null);
                var azTypeInfo = asm.GetType("Microsoft.Cct.ProductVersionInfo.AzureToolsVersionInfo");
                bool isSdkInstalled = false;
                bool isLibrariesInstalled = false;
                Dictionary<string, string> sdkProperties = new Dictionary<string, string>();
                Dictionary<string, string> libProperties = new Dictionary<string, string>();

                // Get the SDK reference
                var targetAzureSDK = azTypeInfo.GetProperty("TargetAzureSDK").GetValue(val);
                Type targetAzureSDKProp = targetAzureSDK.GetType();
                var methodNames = targetAzureSDKProp.GetMethods().Select(it => it.Name).ToArray();
                var sdkIsInstalledMethod = targetAzureSDKProp.GetMethods().FirstOrDefault(it => it.Name == "IsSDKInstalled");
                isSdkInstalled = (bool)sdkIsInstalledMethod.Invoke(targetAzureSDK, null);
                var sdkProps = targetAzureSDKProp.GetProperties().ToArray();
                foreach (var prop in sdkProps)
                {
                    try
                    {
                        sdkProperties[prop.Name] = string.Concat(prop.GetValue(targetAzureSDK));
                    }
                    catch (Exception ex)
                    {
                        sdkProperties[prop.Name] = "Error:" + ex.Message;
                    }
                }

                if (isSdkInstalled)
                {
                    // Get the Azure libraries reference
                    var targetAzureLibraries = azTypeInfo.GetProperty("TargetAzureLibraries").GetValue(val);
                    Type targetAzureLibrariesProp = targetAzureLibraries.GetType();
                    var isInstalledMethod = targetAzureLibrariesProp.GetMethods().FirstOrDefault(it => it.Name == "IsLibrariesInstalled");
                    isLibrariesInstalled = (bool)isInstalledMethod.Invoke(targetAzureLibraries, null);
                    var props = targetAzureLibrariesProp.GetProperties().ToArray();
                    foreach (var prop in props)
                    {
                        try
                        {
                            libProperties[prop.Name] = string.Concat(prop.GetValue(targetAzureLibraries));
                        }
                        catch (Exception ex)
                        {
                            libProperties[prop.Name] = "Error:" + ex.Message;
                        }
                    }
                }
                // Output details of this SDK
                Console.WriteLine("{0}, {1}, {2}", version, isSdkInstalled, isLibrariesInstalled);
                Console.WriteLine("\tSDK");
                foreach (var kp in sdkProperties)
                {
                    Console.WriteLine("\t{0} {1}", kp.Key, kp.Value);
                }
                Console.WriteLine("\tLib");
                foreach (var kp in libProperties)
                {
                    Console.WriteLine("\t{0} {1}", kp.Key, kp.Value);
                }
            }
        }
    }
}

Ответ 7

Удалены все записи Windows Azure, заканчивающиеся в октябре 2012 года через панель управления. После повторного открытия моего решения я получил диалоговое окно для преобразования цели проекта (снимок экрана).

Azure upgrade

Ответ 8

Во второй раз включите опцию. Получил эту ошибку при загрузке проекта через неделю. Перезаписал, и он ушел. Поэтому попробуйте хотя бы один раз.