Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch vsixTest Excluding Merge-Ins
This is equivalent to a diff from e721975faa to 799d5f09ed
2016-02-25
| ||
23:25 | Add tool for smoke-testing the UWP VSIX package. (check-in: d27f32c6d7 user: mistachkin tags: trunk) | |
23:22 | Enhance checking of prerequisites in the vsixtest tool. (Closed-Leaf check-in: 799d5f09ed user: mistachkin tags: vsixTest) | |
13:33 | In the command-line shell: When the ".import" command is creating a new table using column names from the first row of CSV input, make sure double-quotes in the name are properly escaped. (check-in: 2e67a1c823 user: drh tags: trunk) | |
08:02 | Improve readability and logging of the vsixtest script. (check-in: 4fe7c4e90b user: mistachkin tags: vsixTest) | |
2016-02-24
| ||
21:42 | Initial work on an automated VSIX testing tool. Not working or tested yet. (check-in: 496e4ac984 user: mistachkin tags: vsixTest) | |
20:16 | Extend [3e9ed1ae] so that covering indexes on WITHOUT ROWID tables are also identified. (check-in: e721975faa user: dan tags: trunk) | |
19:57 | Change a char* to const char* in order to suppress some harmless compiler warnings. (check-in: 56f62e34ae user: drh tags: trunk) | |
Added vsixtest/App.xaml.
1 +<Application 2 + x:Class="vsixtest.App" 3 + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 + xmlns:local="using:vsixtest" 6 + RequestedTheme="Light"> 7 + 8 +</Application>
Added vsixtest/App.xaml.cpp.
1 +// 2 +// App.xaml.cpp 3 +// Implementation of the App class. 4 +// 5 + 6 +#include "pch.h" 7 +#include "MainPage.xaml.h" 8 + 9 +using namespace vsixtest; 10 + 11 +using namespace Platform; 12 +using namespace Windows::ApplicationModel; 13 +using namespace Windows::ApplicationModel::Activation; 14 +using namespace Windows::Foundation; 15 +using namespace Windows::Foundation::Collections; 16 +using namespace Windows::UI::Xaml; 17 +using namespace Windows::UI::Xaml::Controls; 18 +using namespace Windows::UI::Xaml::Controls::Primitives; 19 +using namespace Windows::UI::Xaml::Data; 20 +using namespace Windows::UI::Xaml::Input; 21 +using namespace Windows::UI::Xaml::Interop; 22 +using namespace Windows::UI::Xaml::Media; 23 +using namespace Windows::UI::Xaml::Navigation; 24 + 25 +/// <summary> 26 +/// Initializes the singleton application object. This is the first line of authored code 27 +/// executed, and as such is the logical equivalent of main() or WinMain(). 28 +/// </summary> 29 +App::App() 30 +{ 31 + InitializeComponent(); 32 + Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); 33 +} 34 + 35 +/// <summary> 36 +/// Invoked when the application is launched normally by the end user. Other entry points 37 +/// will be used such as when the application is launched to open a specific file. 38 +/// </summary> 39 +/// <param name="e">Details about the launch request and process.</param> 40 +void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) 41 +{ 42 + 43 +#if _DEBUG 44 + // Show graphics profiling information while debugging. 45 + if (IsDebuggerPresent()) 46 + { 47 + // Display the current frame rate counters 48 + DebugSettings->EnableFrameRateCounter = true; 49 + } 50 +#endif 51 + 52 + auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content); 53 + 54 + // Do not repeat app initialization when the Window already has content, 55 + // just ensure that the window is active 56 + if (rootFrame == nullptr) 57 + { 58 + // Create a Frame to act as the navigation context and associate it with 59 + // a SuspensionManager key 60 + rootFrame = ref new Frame(); 61 + 62 + rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed); 63 + 64 + if (e->PreviousExecutionState == ApplicationExecutionState::Terminated) 65 + { 66 + // TODO: Restore the saved session state only when appropriate, scheduling the 67 + // final launch steps after the restore is complete 68 + 69 + } 70 + 71 + if (rootFrame->Content == nullptr) 72 + { 73 + // When the navigation stack isn't restored navigate to the first page, 74 + // configuring the new page by passing required information as a navigation 75 + // parameter 76 + rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments); 77 + } 78 + // Place the frame in the current Window 79 + Window::Current->Content = rootFrame; 80 + // Ensure the current window is active 81 + Window::Current->Activate(); 82 + } 83 + else 84 + { 85 + if (rootFrame->Content == nullptr) 86 + { 87 + // When the navigation stack isn't restored navigate to the first page, 88 + // configuring the new page by passing required information as a navigation 89 + // parameter 90 + rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments); 91 + } 92 + // Ensure the current window is active 93 + Window::Current->Activate(); 94 + } 95 +} 96 + 97 +/// <summary> 98 +/// Invoked when application execution is being suspended. Application state is saved 99 +/// without knowing whether the application will be terminated or resumed with the contents 100 +/// of memory still intact. 101 +/// </summary> 102 +/// <param name="sender">The source of the suspend request.</param> 103 +/// <param name="e">Details about the suspend request.</param> 104 +void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e) 105 +{ 106 + (void) sender; // Unused parameter 107 + (void) e; // Unused parameter 108 + 109 + //TODO: Save application state and stop any background activity 110 +} 111 + 112 +/// <summary> 113 +/// Invoked when Navigation to a certain page fails 114 +/// </summary> 115 +/// <param name="sender">The Frame which failed navigation</param> 116 +/// <param name="e">Details about the navigation failure</param> 117 +void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e) 118 +{ 119 + throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name); 120 +}
Added vsixtest/App.xaml.h.
1 +// 2 +// App.xaml.h 3 +// Declaration of the App class. 4 +// 5 + 6 +#pragma once 7 + 8 +#include "App.g.h" 9 + 10 +namespace vsixtest 11 +{ 12 + /// <summary> 13 + /// Provides application-specific behavior to supplement the default Application class. 14 + /// </summary> 15 + ref class App sealed 16 + { 17 + protected: 18 + virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override; 19 + 20 + internal: 21 + App(); 22 + 23 + private: 24 + void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e); 25 + void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e); 26 + }; 27 +}
Added vsixtest/Assets/LockScreenLogo.scale-200.png.
cannot compute difference between binary files
Added vsixtest/Assets/SplashScreen.scale-200.png.
cannot compute difference between binary files
Added vsixtest/Assets/Square150x150Logo.scale-200.png.
cannot compute difference between binary files
Added vsixtest/Assets/Square44x44Logo.scale-200.png.
cannot compute difference between binary files
Added vsixtest/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.
cannot compute difference between binary files
Added vsixtest/Assets/StoreLogo.png.
cannot compute difference between binary files
Added vsixtest/Assets/Wide310x150Logo.scale-200.png.
cannot compute difference between binary files
Added vsixtest/MainPage.xaml.
1 +<Page 2 + x:Class="vsixtest.MainPage" 3 + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 + xmlns:local="using:vsixtest" 6 + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 8 + mc:Ignorable="d"> 9 + 10 + <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 11 + 12 + </Grid> 13 +</Page>
Added vsixtest/MainPage.xaml.cpp.
1 +// 2 +// MainPage.xaml.cpp 3 +// Implementation of the MainPage class. 4 +// 5 + 6 +#include "pch.h" 7 +#include "MainPage.xaml.h" 8 +#include "sqlite3.h" 9 + 10 +using namespace vsixtest; 11 + 12 +using namespace Platform; 13 +using namespace Windows::Foundation; 14 +using namespace Windows::Foundation::Collections; 15 +using namespace Windows::UI::Xaml; 16 +using namespace Windows::UI::Xaml::Controls; 17 +using namespace Windows::UI::Xaml::Controls::Primitives; 18 +using namespace Windows::UI::Xaml::Data; 19 +using namespace Windows::UI::Xaml::Input; 20 +using namespace Windows::UI::Xaml::Media; 21 +using namespace Windows::UI::Xaml::Navigation; 22 + 23 +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 24 + 25 +MainPage::MainPage() 26 +{ 27 + InitializeComponent(); 28 + UseSQLite(); 29 +} 30 + 31 +void MainPage::UseSQLite(void) 32 +{ 33 + int rc = SQLITE_OK; 34 + sqlite3 *pDb = nullptr; 35 + 36 + rc = sqlite3_open_v2("test.db", &pDb, 37 + SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, nullptr); 38 + 39 + if (rc != SQLITE_OK) 40 + throw ref new FailureException("Failed to open database."); 41 + 42 + rc = sqlite3_exec(pDb, "VACUUM;", nullptr, nullptr, nullptr); 43 + 44 + if (rc != SQLITE_OK) 45 + throw ref new FailureException("Failed to vacuum database."); 46 + 47 + rc = sqlite3_close(pDb); 48 + 49 + if (rc != SQLITE_OK) 50 + throw ref new FailureException("Failed to close database."); 51 + 52 + pDb = nullptr; 53 +}
Added vsixtest/MainPage.xaml.h.
1 +// 2 +// MainPage.xaml.h 3 +// Declaration of the MainPage class. 4 +// 5 + 6 +#pragma once 7 + 8 +#include "MainPage.g.h" 9 + 10 +namespace vsixtest 11 +{ 12 + /// <summary> 13 + /// An empty page that can be used on its own or navigated to within a Frame. 14 + /// </summary> 15 + public ref class MainPage sealed 16 + { 17 + public: 18 + MainPage(); 19 + void UseSQLite(void); 20 + 21 + }; 22 +}
Added vsixtest/Package.appxmanifest.
1 +<?xml version="1.0" encoding="utf-8"?> 2 + 3 +<Package 4 + xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" 5 + xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 6 + xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 7 + IgnorableNamespaces="uap mp"> 8 + 9 + <Identity 10 + Name="bb52b3e1-5c8a-4516-a5ff-8b9f9baadef7" 11 + Publisher="CN=mistachkin" 12 + Version="1.0.0.0" /> 13 + 14 + <mp:PhoneIdentity PhoneProductId="bb52b3e1-5c8a-4516-a5ff-8b9f9baadef7" PhonePublisherId="00000000-0000-0000-0000-000000000000"/> 15 + 16 + <Properties> 17 + <DisplayName>vsixtest</DisplayName> 18 + <PublisherDisplayName>mistachkin</PublisherDisplayName> 19 + <Logo>Assets\StoreLogo.png</Logo> 20 + </Properties> 21 + 22 + <Dependencies> 23 + <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" /> 24 + </Dependencies> 25 + 26 + <Resources> 27 + <Resource Language="x-generate"/> 28 + </Resources> 29 + 30 + <Applications> 31 + <Application Id="App" 32 + Executable="$targetnametoken$.exe" 33 + EntryPoint="vsixtest.App"> 34 + <uap:VisualElements 35 + DisplayName="vsixtest" 36 + Square150x150Logo="Assets\Square150x150Logo.png" 37 + Square44x44Logo="Assets\Square44x44Logo.png" 38 + Description="vsixtest" 39 + BackgroundColor="transparent"> 40 + <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/> 41 + <uap:SplashScreen Image="Assets\SplashScreen.png" /> 42 + </uap:VisualElements> 43 + </Application> 44 + </Applications> 45 + 46 + <Capabilities> 47 + <Capability Name="internetClient" /> 48 + </Capabilities> 49 +</Package>
Added vsixtest/pch.cpp.
1 +// 2 +// pch.cpp 3 +// Include the standard header and generate the precompiled header. 4 +// 5 + 6 +#include "pch.h"
Added vsixtest/pch.h.
1 +// 2 +// pch.h 3 +// Header for standard system include files. 4 +// 5 + 6 +#pragma once 7 + 8 +#include <collection.h> 9 +#include <ppltasks.h> 10 + 11 +#include "App.xaml.h"
Added vsixtest/vsixtest.sln.
1 +Microsoft Visual Studio Solution File, Format Version 12.00 2 +# Visual Studio 14 3 +VisualStudioVersion = 14.0.24720.0 4 +MinimumVisualStudioVersion = 10.0.40219.1 5 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vsixtest", "vsixtest.vcxproj", "{60BB14A5-0871-4656-BC38-4F0958230F9A}" 6 +EndProject 7 +Global 8 + GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 + Debug|ARM = Debug|ARM 10 + Debug|x64 = Debug|x64 11 + Debug|x86 = Debug|x86 12 + Release|ARM = Release|ARM 13 + Release|x64 = Release|x64 14 + Release|x86 = Release|x86 15 + EndGlobalSection 16 + GlobalSection(ProjectConfigurationPlatforms) = postSolution 17 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.ActiveCfg = Debug|ARM 18 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Build.0 = Debug|ARM 19 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Deploy.0 = Debug|ARM 20 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.ActiveCfg = Debug|x64 21 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Build.0 = Debug|x64 22 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Deploy.0 = Debug|x64 23 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.ActiveCfg = Debug|Win32 24 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Build.0 = Debug|Win32 25 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Deploy.0 = Debug|Win32 26 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.ActiveCfg = Release|ARM 27 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Build.0 = Release|ARM 28 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Deploy.0 = Release|ARM 29 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.ActiveCfg = Release|x64 30 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Build.0 = Release|x64 31 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Deploy.0 = Release|x64 32 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.ActiveCfg = Release|Win32 33 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Build.0 = Release|Win32 34 + {60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Deploy.0 = Release|Win32 35 + EndGlobalSection 36 + GlobalSection(SolutionProperties) = preSolution 37 + HideSolutionNode = FALSE 38 + EndGlobalSection 39 +EndGlobal
Added vsixtest/vsixtest.tcl.
1 +#!/usr/bin/tclsh 2 +# 3 +# This script is used to quickly test a VSIX (Visual Studio Extension) file 4 +# with Visual Studio 2015 on Windows. 5 +# 6 +# PREREQUISITES 7 +# 8 +# 1. This tool must be executed with "elevated administrator" privileges. 9 +# 10 +# 2. Tcl 8.4 and later are supported, earlier versions have not been tested. 11 +# 12 +# 3. The "sqlite-UWP-output.vsix" file is assumed to exist in the parent 13 +# directory of the directory containing this script. The [optional] first 14 +# command line argument to this script may be used to specify an alternate 15 +# file. However, currently, the file must be compatible with both Visual 16 +# Studio 2015 and the Universal Windows Platform. 17 +# 18 +# 4. The "VERSION" file is assumed to exist in the parent directory of the 19 +# directory containing this script. It must contain a version number that 20 +# matches the VSIX file being tested. 21 +# 22 +# 5. The temporary directory specified in the TEMP or TMP environment variables 23 +# must refer to an existing directory writable by the current user. 24 +# 25 +# 6. The VS140COMNTOOLS environment variable must refer to the Visual Studio 26 +# 2015 common tools directory. 27 +# 28 +# USAGE 29 +# 30 +# The first argument to this script is optional. If specified, it must be the 31 +# name of the VSIX file to test. 32 +# 33 +package require Tcl 8.4 34 + 35 +proc fail { {error ""} {usage false} } { 36 + if {[string length $error] > 0} then { 37 + puts stdout $error 38 + if {!$usage} then {exit 1} 39 + } 40 + 41 + puts stdout "usage:\ 42 +[file tail [info nameofexecutable]]\ 43 +[file tail [info script]] \[vsixFile\]" 44 + 45 + exit 1 46 +} 47 + 48 +proc isWindows {} { 49 + # 50 + # NOTE: Returns non-zero only when running on Windows. 51 + # 52 + return [expr {[info exists ::tcl_platform(platform)] && \ 53 + $::tcl_platform(platform) eq "windows"}] 54 +} 55 + 56 +proc isAdministrator {} { 57 + # 58 + # NOTE: Returns non-zero only when running as "elevated administrator". 59 + # 60 + if {[isWindows]} then { 61 + if {[catch {exec -- whoami /groups} groups] == 0} then { 62 + set groups [string map [list \r\n \n] $groups] 63 + 64 + foreach group [split $groups \n] { 65 + # 66 + # NOTE: Match this group line against the "well-known" SID for 67 + # the "Administrators" group on Windows. 68 + # 69 + if {[regexp -- {\sS-1-5-32-544\s} $group]} then { 70 + # 71 + # NOTE: Match this group line against the attributes column 72 + # sub-value that should be present when running with 73 + # elevated administrator credentials. 74 + # 75 + if {[regexp -- {\sEnabled group(?:,|\s)} $group]} then { 76 + return true 77 + } 78 + } 79 + } 80 + } 81 + } 82 + 83 + return false 84 +} 85 + 86 +proc getEnvironmentVariable { name } { 87 + # 88 + # NOTE: Returns the value of the specified environment variable or an empty 89 + # string for environment variables that do not exist in the current 90 + # process environment. 91 + # 92 + return [expr {[info exists ::env($name)] ? $::env($name) : ""}] 93 +} 94 + 95 +proc getTemporaryPath {} { 96 + # 97 + # NOTE: Returns the normalized path to the first temporary directory found 98 + # in the typical set of environment variables used for that purpose 99 + # or an empty string to signal a failure to locate such a directory. 100 + # 101 + set names [list] 102 + 103 + foreach name [list TEMP TMP] { 104 + lappend names [string toupper $name] [string tolower $name] \ 105 + [string totitle $name] 106 + } 107 + 108 + foreach name $names { 109 + set value [getEnvironmentVariable $name] 110 + 111 + if {[string length $value] > 0} then { 112 + return [file normalize $value] 113 + } 114 + } 115 + 116 + return "" 117 +} 118 + 119 +proc appendArgs { args } { 120 + # 121 + # NOTE: Returns all passed arguments joined together as a single string 122 + # with no intervening spaces between arguments. 123 + # 124 + eval append result $args 125 +} 126 + 127 +proc readFile { fileName } { 128 + # 129 + # NOTE: Reads and returns the entire contents of the specified file, which 130 + # may contain binary data. 131 + # 132 + set file_id [open $fileName RDONLY] 133 + fconfigure $file_id -encoding binary -translation binary 134 + set result [read $file_id] 135 + close $file_id 136 + return $result 137 +} 138 + 139 +proc writeFile { fileName data } { 140 + # 141 + # NOTE: Writes the entire contents of the specified file, which may contain 142 + # binary data. 143 + # 144 + set file_id [open $fileName {WRONLY CREAT TRUNC}] 145 + fconfigure $file_id -encoding binary -translation binary 146 + puts -nonewline $file_id $data 147 + close $file_id 148 + return "" 149 +} 150 + 151 +proc putsAndEval { command } { 152 + # 153 + # NOTE: Outputs a command to the standard output channel and then evaluates 154 + # it in the callers context. 155 + # 156 + catch { 157 + puts stdout [appendArgs "Running: " [lrange $command 1 end] ...\n] 158 + } 159 + 160 + return [uplevel 1 $command] 161 +} 162 + 163 +proc isBadDirectory { directory } { 164 + # 165 + # NOTE: Returns non-zero if the directory is empty, does not exist, -OR- is 166 + # not a directory. 167 + # 168 + catch { 169 + puts stdout [appendArgs "Checking directory \"" $directory \"...\n] 170 + } 171 + 172 + return [expr {[string length $directory] == 0 || \ 173 + ![file exists $directory] || ![file isdirectory $directory]}] 174 +} 175 + 176 +proc isBadFile { fileName } { 177 + # 178 + # NOTE: Returns non-zero if the file name is empty, does not exist, -OR- is 179 + # not a regular file. 180 + # 181 + catch { 182 + puts stdout [appendArgs "Checking file \"" $fileName \"...\n] 183 + } 184 + 185 + return [expr {[string length $fileName] == 0 || \ 186 + ![file exists $fileName] || ![file isfile $fileName]}] 187 +} 188 + 189 +# 190 +# NOTE: This is the entry point for this script. 191 +# 192 +set script [file normalize [info script]] 193 + 194 +if {[string length $script] == 0} then { 195 + fail "script file currently being evaluated is unknown" true 196 +} 197 + 198 +if {![isWindows]} then { 199 + fail "this tool only works properly on Windows" 200 +} 201 + 202 +if {![isAdministrator]} then { 203 + fail "this tool must run with \"elevated administrator\" privileges" 204 +} 205 + 206 +set path [file normalize [file dirname $script]] 207 +set argc [llength $argv]; if {$argc > 1} then {fail "" true} 208 + 209 +if {$argc == 1} then { 210 + set vsixFileName [lindex $argv 0] 211 +} else { 212 + set vsixFileName [file join \ 213 + [file dirname $path] sqlite-UWP-output.vsix] 214 +} 215 + 216 +############################################################################### 217 + 218 +if {[isBadFile $vsixFileName]} then { 219 + fail [appendArgs \ 220 + "VSIX file \"" $vsixFileName "\" does not exist"] 221 +} 222 + 223 +set versionFileName [file join [file dirname $path] VERSION] 224 + 225 +if {[isBadFile $versionFileName]} then { 226 + fail [appendArgs \ 227 + "Version file \"" $versionFileName "\" does not exist"] 228 +} 229 + 230 +set projectTemplateFileName [file join $path vsixtest.vcxproj.data] 231 + 232 +if {[isBadFile $projectTemplateFileName]} then { 233 + fail [appendArgs \ 234 + "Project template file \"" $projectTemplateFileName \ 235 + "\" does not exist"] 236 +} 237 + 238 +set envVarName VS140COMNTOOLS 239 +set vsDirectory [getEnvironmentVariable $envVarName] 240 + 241 +if {[isBadDirectory $vsDirectory]} then { 242 + fail [appendArgs \ 243 + "Visual Studio 2015 directory \"" $vsDirectory \ 244 + "\" from environment variable \"" $envVarName \ 245 + "\" does not exist"] 246 +} 247 + 248 +set vsixInstaller [file join \ 249 + [file dirname $vsDirectory] IDE VSIXInstaller.exe] 250 + 251 +if {[isBadFile $vsixInstaller]} then { 252 + fail [appendArgs \ 253 + "Visual Studio 2015 VSIX installer \"" $vsixInstaller \ 254 + "\" does not exist"] 255 +} 256 + 257 +set envVarName ProgramFiles 258 +set programFiles [getEnvironmentVariable $envVarName] 259 + 260 +if {[isBadDirectory $programFiles]} then { 261 + fail [appendArgs \ 262 + "Program Files directory \"" $programFiles \ 263 + "\" from environment variable \"" $envVarName \ 264 + "\" does not exist"] 265 +} 266 + 267 +set msBuild [file join $programFiles MSBuild 14.0 Bin MSBuild.exe] 268 + 269 +if {[isBadFile $msBuild]} then { 270 + fail [appendArgs \ 271 + "MSBuild v14.0 executable file \"" $msBuild \ 272 + "\" does not exist"] 273 +} 274 + 275 +set temporaryDirectory [getTemporaryPath] 276 + 277 +if {[isBadDirectory $temporaryDirectory]} then { 278 + fail [appendArgs \ 279 + "Temporary directory \"" $temporaryDirectory \ 280 + "\" does not exist"] 281 +} 282 + 283 +############################################################################### 284 + 285 +set installLogFileName [appendArgs \ 286 + [file rootname [file tail $vsixFileName]] \ 287 + -install- [pid] .log] 288 + 289 +set commands(1) [list exec [file nativename $vsixInstaller]] 290 + 291 +lappend commands(1) /quiet /norepair 292 +lappend commands(1) [appendArgs /logFile: $installLogFileName] 293 +lappend commands(1) [file nativename $vsixFileName] 294 + 295 +############################################################################### 296 + 297 +set buildLogFileName [appendArgs \ 298 + [file rootname [file tail $vsixFileName]] \ 299 + -build-%configuration%-%platform%- [pid] .log] 300 + 301 +set commands(2) [list exec [file nativename $msBuild]] 302 + 303 +lappend commands(2) [file nativename [file join $path vsixtest.sln]] 304 +lappend commands(2) /target:Rebuild 305 +lappend commands(2) /property:Configuration=%configuration% 306 +lappend commands(2) /property:Platform=%platform% 307 + 308 +lappend commands(2) [appendArgs \ 309 + /logger:FileLogger,Microsoft.Build.Engine\;Logfile= \ 310 + [file nativename [file join $temporaryDirectory \ 311 + $buildLogFileName]] \;Verbosity=diagnostic] 312 + 313 +############################################################################### 314 + 315 +set uninstallLogFileName [appendArgs \ 316 + [file rootname [file tail $vsixFileName]] \ 317 + -uninstall- [pid] .log] 318 + 319 +set commands(3) [list exec [file nativename $vsixInstaller]] 320 + 321 +lappend commands(3) /quiet /norepair 322 +lappend commands(3) [appendArgs /logFile: $uninstallLogFileName] 323 +lappend commands(3) [appendArgs /uninstall:SQLite.UWP.2015] 324 + 325 +############################################################################### 326 + 327 +if {1} then { 328 + catch { 329 + puts stdout [appendArgs \ 330 + "Install log: \"" [file nativename [file join \ 331 + $temporaryDirectory $installLogFileName]] \"\n] 332 + } 333 + 334 + catch { 335 + puts stdout [appendArgs \ 336 + "Build logs: \"" [file nativename [file join \ 337 + $temporaryDirectory $buildLogFileName]] \"\n] 338 + } 339 + 340 + catch { 341 + puts stdout [appendArgs \ 342 + "Uninstall log: \"" [file nativename [file join \ 343 + $temporaryDirectory $uninstallLogFileName]] \"\n] 344 + } 345 +} 346 + 347 +############################################################################### 348 + 349 +if {1} then { 350 + putsAndEval $commands(1) 351 + 352 + set versionNumber [string trim [readFile $versionFileName]] 353 + set data [readFile $projectTemplateFileName] 354 + set data [string map [list %versionNumber% $versionNumber] $data] 355 + 356 + set projectFileName [file join $path vsixtest.vcxproj] 357 + writeFile $projectFileName $data 358 + 359 + set platforms [list x86 x64 ARM] 360 + set configurations [list Debug Release] 361 + 362 + foreach platform $platforms { 363 + foreach configuration $configurations { 364 + putsAndEval [string map [list \ 365 + %platform% $platform %configuration% $configuration] \ 366 + $commands(2)] 367 + } 368 + } 369 + 370 + putsAndEval $commands(3) 371 +}
Added vsixtest/vsixtest.vcxproj.data.
1 +<?xml version="1.0" encoding="utf-8"?> 2 +<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 + <PropertyGroup Label="Globals"> 4 + <ProjectGuid>{60bb14a5-0871-4656-bc38-4f0958230f9a}</ProjectGuid> 5 + <RootNamespace>vsixtest</RootNamespace> 6 + <DefaultLanguage>en-US</DefaultLanguage> 7 + <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> 8 + <AppContainerApplication>true</AppContainerApplication> 9 + <ApplicationType>Windows Store</ApplicationType> 10 + <WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion> 11 + <WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion> 12 + <ApplicationTypeRevision>10.0</ApplicationTypeRevision> 13 + </PropertyGroup> 14 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 15 + <ItemGroup Label="ProjectConfigurations"> 16 + <ProjectConfiguration Include="Debug|ARM"> 17 + <Configuration>Debug</Configuration> 18 + <Platform>ARM</Platform> 19 + </ProjectConfiguration> 20 + <ProjectConfiguration Include="Debug|Win32"> 21 + <Configuration>Debug</Configuration> 22 + <Platform>Win32</Platform> 23 + </ProjectConfiguration> 24 + <ProjectConfiguration Include="Debug|x64"> 25 + <Configuration>Debug</Configuration> 26 + <Platform>x64</Platform> 27 + </ProjectConfiguration> 28 + <ProjectConfiguration Include="Release|ARM"> 29 + <Configuration>Release</Configuration> 30 + <Platform>ARM</Platform> 31 + </ProjectConfiguration> 32 + <ProjectConfiguration Include="Release|Win32"> 33 + <Configuration>Release</Configuration> 34 + <Platform>Win32</Platform> 35 + </ProjectConfiguration> 36 + <ProjectConfiguration Include="Release|x64"> 37 + <Configuration>Release</Configuration> 38 + <Platform>x64</Platform> 39 + </ProjectConfiguration> 40 + </ItemGroup> 41 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 42 + <ConfigurationType>Application</ConfigurationType> 43 + <UseDebugLibraries>true</UseDebugLibraries> 44 + <PlatformToolset>v140</PlatformToolset> 45 + </PropertyGroup> 46 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration"> 47 + <ConfigurationType>Application</ConfigurationType> 48 + <UseDebugLibraries>true</UseDebugLibraries> 49 + <PlatformToolset>v140</PlatformToolset> 50 + </PropertyGroup> 51 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> 52 + <ConfigurationType>Application</ConfigurationType> 53 + <UseDebugLibraries>true</UseDebugLibraries> 54 + <PlatformToolset>v140</PlatformToolset> 55 + </PropertyGroup> 56 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> 57 + <ConfigurationType>Application</ConfigurationType> 58 + <UseDebugLibraries>false</UseDebugLibraries> 59 + <WholeProgramOptimization>true</WholeProgramOptimization> 60 + <PlatformToolset>v140</PlatformToolset> 61 + <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain> 62 + </PropertyGroup> 63 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration"> 64 + <ConfigurationType>Application</ConfigurationType> 65 + <UseDebugLibraries>false</UseDebugLibraries> 66 + <WholeProgramOptimization>true</WholeProgramOptimization> 67 + <PlatformToolset>v140</PlatformToolset> 68 + <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain> 69 + </PropertyGroup> 70 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> 71 + <ConfigurationType>Application</ConfigurationType> 72 + <UseDebugLibraries>false</UseDebugLibraries> 73 + <WholeProgramOptimization>true</WholeProgramOptimization> 74 + <PlatformToolset>v140</PlatformToolset> 75 + <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain> 76 + </PropertyGroup> 77 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 78 + <ImportGroup Label="ExtensionSettings"> 79 + </ImportGroup> 80 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 81 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 82 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 83 + </ImportGroup> 84 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 85 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 86 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 87 + </ImportGroup> 88 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> 89 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 90 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 91 + </ImportGroup> 92 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> 93 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 94 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 95 + </ImportGroup> 96 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> 97 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 98 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 99 + </ImportGroup> 100 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> 101 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 102 + <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion), $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" /> 103 + </ImportGroup> 104 + <PropertyGroup Label="UserMacros" /> 105 + <PropertyGroup> 106 + <PackageCertificateKeyFile>vsixtest_TemporaryKey.pfx</PackageCertificateKeyFile> 107 + </PropertyGroup> 108 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> 109 + <ClCompile> 110 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 111 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 112 + </ClCompile> 113 + </ItemDefinitionGroup> 114 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> 115 + <ClCompile> 116 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 117 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 118 + </ClCompile> 119 + </ItemDefinitionGroup> 120 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 121 + <ClCompile> 122 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 123 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 124 + </ClCompile> 125 + </ItemDefinitionGroup> 126 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 127 + <ClCompile> 128 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 129 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 130 + </ClCompile> 131 + </ItemDefinitionGroup> 132 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> 133 + <ClCompile> 134 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 135 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 136 + </ClCompile> 137 + </ItemDefinitionGroup> 138 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> 139 + <ClCompile> 140 + <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> 141 + <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings> 142 + </ClCompile> 143 + </ItemDefinitionGroup> 144 + <ItemGroup> 145 + <ClInclude Include="pch.h" /> 146 + <ClInclude Include="App.xaml.h"> 147 + <DependentUpon>App.xaml</DependentUpon> 148 + </ClInclude> 149 + <ClInclude Include="MainPage.xaml.h"> 150 + <DependentUpon>MainPage.xaml</DependentUpon> 151 + </ClInclude> 152 + </ItemGroup> 153 + <ItemGroup> 154 + <ApplicationDefinition Include="App.xaml"> 155 + <SubType>Designer</SubType> 156 + </ApplicationDefinition> 157 + <Page Include="MainPage.xaml"> 158 + <SubType>Designer</SubType> 159 + </Page> 160 + </ItemGroup> 161 + <ItemGroup> 162 + <AppxManifest Include="Package.appxmanifest"> 163 + <SubType>Designer</SubType> 164 + </AppxManifest> 165 + <None Include="vsixtest_TemporaryKey.pfx" /> 166 + </ItemGroup> 167 + <ItemGroup> 168 + <Image Include="Assets\LockScreenLogo.scale-200.png" /> 169 + <Image Include="Assets\SplashScreen.scale-200.png" /> 170 + <Image Include="Assets\Square150x150Logo.scale-200.png" /> 171 + <Image Include="Assets\Square44x44Logo.scale-200.png" /> 172 + <Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" /> 173 + <Image Include="Assets\StoreLogo.png" /> 174 + <Image Include="Assets\Wide310x150Logo.scale-200.png" /> 175 + </ItemGroup> 176 + <ItemGroup> 177 + <ClCompile Include="App.xaml.cpp"> 178 + <DependentUpon>App.xaml</DependentUpon> 179 + </ClCompile> 180 + <ClCompile Include="MainPage.xaml.cpp"> 181 + <DependentUpon>MainPage.xaml</DependentUpon> 182 + </ClCompile> 183 + <ClCompile Include="pch.cpp"> 184 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> 185 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> 186 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader> 187 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader> 188 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> 189 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> 190 + </ClCompile> 191 + </ItemGroup> 192 + <ItemGroup> 193 + <SDKReference Include="SQLite.UWP.2015, Version=%versionNumber%" /> 194 + </ItemGroup> 195 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 196 + <ImportGroup Label="ExtensionTargets"> 197 + </ImportGroup> 198 +</Project>
Added vsixtest/vsixtest.vcxproj.filters.
1 +<?xml version="1.0" encoding="utf-8"?> 2 +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 + <ItemGroup> 4 + <Filter Include="Common"> 5 + <UniqueIdentifier>60bb14a5-0871-4656-bc38-4f0958230f9a</UniqueIdentifier> 6 + </Filter> 7 + <Filter Include="Assets"> 8 + <UniqueIdentifier>e6271362-8f96-476d-907f-4da227b02435</UniqueIdentifier> 9 + <Extensions>bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png</Extensions> 10 + </Filter> 11 + </ItemGroup> 12 + <ItemGroup> 13 + <ApplicationDefinition Include="App.xaml" /> 14 + </ItemGroup> 15 + <ItemGroup> 16 + <ClCompile Include="App.xaml.cpp" /> 17 + <ClCompile Include="MainPage.xaml.cpp" /> 18 + <ClCompile Include="pch.cpp" /> 19 + </ItemGroup> 20 + <ItemGroup> 21 + <ClInclude Include="pch.h" /> 22 + <ClInclude Include="App.xaml.h" /> 23 + <ClInclude Include="MainPage.xaml.h" /> 24 + </ItemGroup> 25 + <ItemGroup> 26 + <Image Include="Assets\LockScreenLogo.scale-200.png"> 27 + <Filter>Assets</Filter> 28 + </Image> 29 + <Image Include="Assets\SplashScreen.scale-200.png"> 30 + <Filter>Assets</Filter> 31 + </Image> 32 + <Image Include="Assets\Square150x150Logo.scale-200.png"> 33 + <Filter>Assets</Filter> 34 + </Image> 35 + <Image Include="Assets\Square44x44Logo.scale-200.png"> 36 + <Filter>Assets</Filter> 37 + </Image> 38 + <Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png"> 39 + <Filter>Assets</Filter> 40 + </Image> 41 + <Image Include="Assets\StoreLogo.png"> 42 + <Filter>Assets</Filter> 43 + </Image> 44 + <Image Include="Assets\Wide310x150Logo.scale-200.png"> 45 + <Filter>Assets</Filter> 46 + </Image> 47 + </ItemGroup> 48 + <ItemGroup> 49 + <AppxManifest Include="Package.appxmanifest" /> 50 + </ItemGroup> 51 + <ItemGroup> 52 + <None Include="vsixtest_TemporaryKey.pfx" /> 53 + </ItemGroup> 54 + <ItemGroup> 55 + <Page Include="MainPage.xaml" /> 56 + </ItemGroup> 57 +</Project>
Added vsixtest/vsixtest_TemporaryKey.pfx.
cannot compute difference between binary files