2

私は2つの異なるマシンで試してみましたが、何回もダウンロードを試みましたが、VS 2010 Premium(10.0.30139.1 RTMRel )、「ファイルは有効なVSIXパッケージではありません」というエラーが表示されます。検索では、この問題を経験したことのある人が1〜2人しかいないことが明らかになりました。この問題を診断するにはどうすればよいですか?Visual Studio 2010用のProductivity Power Toolsをインストールしようとするとエラーが発生する

編集:私は同じ結果とファイル数回、それぞれをダウンロードした

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ライブラリと異なるか間違っています。

答えて

4

私は、Visual Studio 2010用のVSIX/Extension Managerを作成したチームの開発者ですので、ここで手伝ってください。 VSIXファイルはOPCコンテナです(基本的にいくつかの制約が追加されたzipファイル)。ご想像のとおり、Managed OPC APIを使用してファイルを開きます(.NETのSystem.IO.Packaging名前空間)。このエラーメッセージは、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

ありがとう@Aaron。このコードは、* FileFormatExceptionをスローします:ファイルには破損したデータ*が含まれています。私は私の質問にスタックトレースを追加しました。 – ProfK

+0

何らかの理由でダウンロードが破損していないことを確認できますか? ProPowerTools.vsix(バージョン10.0.20318.14)の現在のバージョンには、cdd55a9d8ac33a69217c9d79a17690acのMD5チェックサムがあることがわかりました。 MicrosoftのFCIVツールを使用して、マシン上でチェックサムを取得することができます。 http://bit.ly/fCSWdy –

+0

OK、ハッシュが違っていたので、.visxを削除してもう一度ダウンロードしたところ、ハッシュは同じになりました。これは以前、2つの異なるマシン上であっても、同じエラーで何度もファイルをダウンロードしたため、これは非常に奇妙です。インターネットのキャッシュが干渉しているのかもしれませんか? – ProfK

0

実際に.VSIXファイルは.ZIPファイルの下にあります。名前を変更して、あなたが何を持っているかを見てみましょう。たぶん、破損したダウンロードの問題でしょうか?私はこのリンクを試しましたhttp://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/自分自身とそれは正常に動作するようです。

+0

名前を変更するとファイルが開くので、内容を確認できます。私は同じ結果でいくつかのダウンロードを試みました。これは本当に面白い問題です。 – ProfK

+0

@ProfK - .vsixをダブルクリックしようとしましたか?それは同じことをしていますか?私のレジストリ(HKEY_CLASSES_ROOT \ VisualStudio.Launcher.vsix \ Shell \ Open \ Command)から、.vsixは "C:¥Program Files(x86)¥Common Files¥Microsoft Shared¥MSEnv¥VSLauncher.exe"というプログラムで処理されます。 %1 "、多分それに問題がありますか?多分VS 2010 –

+0

を修復しようと思うかもしれませんが、インストーラプログラムはうまく見えます - 私は電動工具の問題に気づいた後、最近他の拡張機能をインストールしました。 – ProfK

関連する問題