Ошибка при попытке установить Productivity Power Tools для Visual Studio 2010 - PullRequest
2 голосов
/ 16 марта 2011

Я пробовал на двух разных машинах и пытался загрузить несколько раз, но всякий раз, когда я пытаюсь установить расширение Productivity Power Tools в VS 2010 Premium (10.0.30139.1 RTMRel), я получаю сообщение об ошибке "Файл не являетсядействительный пакет VSIX. "Поиск показывает, что только один или два других человека когда-либо сталкивались с этой проблемой.Как я могу диагностировать эту проблему?

РЕДАКТИРОВАТЬ: В ответ на предложение Аарона ниже, я запустил код со следующим результатом:

at MS.Internal.IO.Zip.ZipIOLocalFileDataDescriptor.ParseRecord(BinaryReader reader, Int64 compressedSizeFromCentralDir, Int64 uncompressedSizeFromCentralDir, UInt32 crc32FromCentralDir, UInt16 versionNeededToExtract)
at MS.Internal.IO.Zip.ZipIOLocalFileBlock.ParseRecord(BinaryReader reader, String fileName, Int64 position, ZipIOCentralDirectoryBlock centralDir, ZipIOCentralDirectoryFileHeader centralDirFileHeader)
at MS.Internal.IO.Zip.ZipIOLocalFileBlock.SeekableLoad(ZipIOBlockManager blockManager, String fileName)
at MS.Internal.IO.Zip.ZipIOBlockManager.LoadLocalFileBlock(String zipFileName)
at MS.Internal.IO.Zip.ZipArchive.GetFile(String zipFileName)
at MS.Internal.IO.Zip.ZipArchive.GetFiles()
at System.IO.Packaging.ZipPackage.ContentTypeHelper..ctor(ZipArchive zipArchive, IgnoredItemHelper ignoredItemHelper)
at System.IO.Packaging.ZipPackage..ctor(Stream s, FileMode mode, FileAccess access, Boolean streaming)
at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess, Boolean streaming)
at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess)
at VSIXReadTest.Program.Main(String[] args) in C:\\Development\\WebSockets\\PowerTools\\Program.cs:line 17

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

Ответы [ 2 ]

4 голосов
/ 29 марта 2011

Я являюсь разработчиком в команде, которая написала VSIX / Extension Manager для Visual Studio 2010, так что, возможно, я могу помочь здесь.Файл VSIX представляет собой OPC-контейнер (в основном это zip-файл с несколькими дополнительными ограничениями).Как и следовало ожидать, мы используем API-интерфейс Managed OPC для открытия файла (т. Е. Пространства имен System.IO.Packaging в .NET).Это сообщение об ошибке должно появляться только в случае сбоя вызова ZipPackage.Open.

Не могли бы вы попытаться скомпилировать следующий код в консольное приложение C # (предназначенное для .NET 4.0) на вашем компьютере и посмотреть, каковы результаты?Вам также необходимо добавить ссылку на сборку в WindowsBase.Если здесь есть ошибка, мы бы хотели узнать о ней больше!

namespace VSIXReadTest
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.IO.Packaging;

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                const string PathToVsixFile = @"PutPathHere!!!";
                using (FileStream stream = new FileStream(PathToVsixFile, FileMode.Open, FileAccess.Read))
                {
                    Package vsixPackage = ZipPackage.Open(stream, FileMode.Open, FileAccess.Read);
                }
            }
            catch (Exception ex)
            {
                StringBuilder errorMessage = new StringBuilder();
                do
                {
                    errorMessage.Append(ex.GetType().Name);
                    errorMessage.Append(": ");
                    errorMessage.AppendLine(ex.Message);
                    errorMessage.AppendLine(ex.StackTrace);
                    ex = ex.InnerException;
                } while (ex != null);

                Console.WriteLine(errorMessage.ToString());
            }

            Console.WriteLine("Press a key to exit...");
            Console.Read();
        }
    }
}
0 голосов
/ 16 марта 2011

Файл .VSIX на самом деле является файлом .ZIP.Попробуйте переименовать его и посмотреть, что у вас внутри.Может быть, это просто поврежденная проблема с загрузкой?Я попробовал эту ссылку http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/ сам, и, кажется, работает нормально.

...