无法为通用Windows应用程序创建vsix扩展

时间:2016-03-04 02:25:14

标签: windows visual-studio-2015 windows-10 win-universal-app

我有一个Windows Phone 8应用程序,我移植到Windows-10。该应用使用.Windows Phone 8的 vsix 扩展程序,因此我也尝试为通用Windows应用程序创建类似的。 vsix 扩展程序。  
我的SDKManifest.xml文件如下:

<?xml version="1.0" 
> encoding="utf-8" ?> <FileList  Identity = "XXX.UWP"  Version =
> "1.0"  DisplayName = "XXX Universal Windows SDK" 
> TargetPlatform="UAP"  MinVSVersion = "14.0"  SDKType="External" 
> SupportedArchitectures = "x64;ARM"  SupportsMultipleVersions = "Error"
> TargetPlatformMinVersion="10.0.10069.0" 
> TargetPlatformVersion="10.0.10069.0">  <File 
> Reference="XXX.winmd" 
> Implementation="XXX.dll"/> </FileList>


我的VSIX清单文件是

<PackageManifest Version="2.0.0"
 xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
 <Metadata>
    <Identity
 Id="XXX.UWP"
 Version="1.0"
 Language="en-US"
 Publisher="XXX Inc" />
    <DisplayName>XXX SDK for Universal Windows</DisplayName>
    <Description>XXX SDK</Description>
    <License>license.txt</License>
  </Metadata>
  <Installation AllUsers="true" Scope="Global">
<InstallationTarget Id="Microsoft.ExtensionSDK"
TargetPlatformIdentifier="Windows Kits"
TargetPlatformVersion="10"
SdkName="XXXSDK.UWP"
SdkVersion="1.0" />
  </Installation>
  <Assets>
    <Asset Type="Microsoft.ExtensionSDK" Path="SDKManifest.xml" />
  </Assets>
</PackageManifest>

我将所有这些xml文件以及所需的dll放在一个文件夹中说“ myVsix ”。然后我将此文件夹压缩到creater“ myVsix.zip
然后我将其重命名为“ myVsix.vsix ”以创建 .vsix 文件。
当我尝试通过双击文件来安装它时,我收到以下错误:
此VSIX包无效,因为它在根目录中不包含文件extension.vsixmanifest。 VSIX文件可能已损坏。

这是错误日志:

3/3/2016 5:46:30 PM - Microsoft VSIX Installer
3/3/2016 5:46:30 PM - -------------------------------------------
3/3/2016 5:46:30 PM - Initializing Install...
3/3/2016 5:46:30 PM - Microsoft.VisualStudio.ExtensionManager.MissingPackagePartException: This VSIX package is invalid because it does not contain the file extension.vsixmanifest at the root. The VSIX file may be corrupted.
   at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl.ReadVSIXManifestFromPackage(Stream vsixStream, CultureInfo preferredCulture)
   at Microsoft.VisualStudio.ExtensionManager.InstallableExtensionImpl..ctor(String path, CultureInfo preferredCulture)
   at VSIXInstaller.App.InitializeInstall(Boolean isRepairSupported)
   at VSIXInstaller.App.InitializeInstall()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

1 个答案:

答案 0 :(得分:1)

似乎Visual Studio无法找到或读取.vsixmanifest文件。它必须被错误命名或其他错误。

您应该使用 VSIX Project Visual Studio模板创建VSIX文件,而不是手动创建VSIX文件:

VSIX Project template

如果您无法在Visual Studio副本中找到它,则应修改安装并包含 Visual Studio可扩展性工具

Visual Studio Extensibility Tools

这将自动创建一个正确的VSIX基本结构,甚至是Visual Studio中的编辑器,用于编辑清单,这样可以更容易,更方便地创建有效的VSIX。

VSIX manifest editor