2016-03-04 126 views
1

我有一個Windows Phone 8應用程序,我正在移植到Windows-10。使用的應用程序。 針對Windows Phone 8的vsix擴展,因此我試圖創建一個類似的。 vsix通用Windows應用程序的擴展。
我SDKManifest.xml文件如下:無法爲通用Windows應用程序創建vsix擴展

<?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> 

我都與需要的dll的文件夾中沿着這些XML文件中說:「myVsix「。然後我壓縮該文件夾創世「myVsix.zip
然後我重新命名爲「myVsix.vsix」創建.vsix文件。
當我嘗試通過雙擊該文件來安裝該文件時,出現以下錯誤:
此VSIX包無效,因爲它的根目錄中不包含文件擴展名.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

看來,Visual Studio中無法找到或讀取.vsixmanifest文件。它必須是錯誤的或其他的東西是錯誤的。

而是手工創建的VSIX文件,你應該使用VSIX項目 Visual Studio的模板來創建它:

VSIX Project template

如果您的Visual Studio的副本,你不能找到它,你應該修改您的安裝,幷包括的Visual Studio擴展工具

Visual Studio Extensibility Tools

這將自動創建VSIX的正確基本結構,甚至在Visual Studio中編輯編輯清單的編輯器,這將使創建有效的VSIX變得更容易和更方便。

VSIX manifest editor

+0

嗨@DamirArh,非常感謝您的回覆。如果使用VS GUI(圖形用戶界面)構建它,我可以創建和使用.vsix擴展名。 我其實更感興趣的是手動創建這個擴展。我們的構建系統是自動化的,因此我們不能使用VS GUI來創建這些擴展。 我們的構建系統只是將創建擴展名所需的所有必要資源複製到一個文件夾中,然後將其壓縮並重命名爲.vsix。我嘗試了相同的過程,不幸的是它不適用於Windows-10和VS-2015。 –

+0

我想你可以嘗試比較兩個vsix文件並查看差異是什麼導致手動創建的不工作。另一方面,你可能應該能夠在編譯服務器上「編譯」VS中創建的項目。通過構建服務器上的所有位,您應該能夠使用MSBuild構建項目文件,並且可以使用任何構建系統。 –