/ Check-in [496e4ac9]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Initial work on an automated VSIX testing tool. Not working or tested yet.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | vsixTest
Files: files | file ages | folders
SHA1:496e4ac984b2548dd5f2f969cd34656b586cfcfe
User & Date: mistachkin 2016-02-24 21:42:03
Context
2016-02-24
23:25
Test build all supported configurations and platforms during VSIX testing. check-in: cce40a0b user: mistachkin tags: vsixTest
21:42
Initial work on an automated VSIX testing tool. Not working or tested yet. check-in: 496e4ac9 user: mistachkin tags: vsixTest
20:16
Extend [3e9ed1ae] so that covering indexes on WITHOUT ROWID tables are also identified. check-in: e721975f user: dan tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

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  +
            9  +using namespace vsixtest;
           10  +
           11  +using namespace Platform;
           12  +using namespace Windows::Foundation;
           13  +using namespace Windows::Foundation::Collections;
           14  +using namespace Windows::UI::Xaml;
           15  +using namespace Windows::UI::Xaml::Controls;
           16  +using namespace Windows::UI::Xaml::Controls::Primitives;
           17  +using namespace Windows::UI::Xaml::Data;
           18  +using namespace Windows::UI::Xaml::Input;
           19  +using namespace Windows::UI::Xaml::Media;
           20  +using namespace Windows::UI::Xaml::Navigation;
           21  +
           22  +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
           23  +
           24  +MainPage::MainPage()
           25  +{
           26  +	InitializeComponent();
           27  +}

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  +
           20  +	};
           21  +}

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  +
            2  +Microsoft Visual Studio Solution File, Format Version 12.00
            3  +# Visual Studio 14
            4  +VisualStudioVersion = 14.0.24720.0
            5  +MinimumVisualStudioVersion = 10.0.40219.1
            6  +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vsixtest", "vsixtest.vcxproj", "{60BB14A5-0871-4656-BC38-4F0958230F9A}"
            7  +EndProject
            8  +Global
            9  +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
           10  +		Debug|ARM = Debug|ARM
           11  +		Debug|x64 = Debug|x64
           12  +		Debug|x86 = Debug|x86
           13  +		Release|ARM = Release|ARM
           14  +		Release|x64 = Release|x64
           15  +		Release|x86 = Release|x86
           16  +	EndGlobalSection
           17  +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
           18  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.ActiveCfg = Debug|ARM
           19  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Build.0 = Debug|ARM
           20  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|ARM.Deploy.0 = Debug|ARM
           21  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.ActiveCfg = Debug|x64
           22  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Build.0 = Debug|x64
           23  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x64.Deploy.0 = Debug|x64
           24  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.ActiveCfg = Debug|Win32
           25  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Build.0 = Debug|Win32
           26  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Debug|x86.Deploy.0 = Debug|Win32
           27  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.ActiveCfg = Release|ARM
           28  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Build.0 = Release|ARM
           29  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|ARM.Deploy.0 = Release|ARM
           30  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.ActiveCfg = Release|x64
           31  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Build.0 = Release|x64
           32  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x64.Deploy.0 = Release|x64
           33  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.ActiveCfg = Release|Win32
           34  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Build.0 = Release|Win32
           35  +		{60BB14A5-0871-4656-BC38-4F0958230F9A}.Release|x86.Deploy.0 = Release|Win32
           36  +	EndGlobalSection
           37  +	GlobalSection(SolutionProperties) = preSolution
           38  +		HideSolutionNode = FALSE
           39  +	EndGlobalSection
           40  +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. Tcl 8.4 and later are supported, earlier versions have not been tested.
            9  +#
           10  +# 2. The "sqlite-UWP-output.vsix" file is assumed to exist in the parent
           11  +#    directory of the directory containing this script.  The [optional] first
           12  +#    command line argument to this script may be used to specify an alternate
           13  +#    file.  However, currently, the file must be compatible with both Visual
           14  +#    Studio 2015 and the Universal Windows Platform.
           15  +#
           16  +# 3. The temporary directory specified in the TEMP or TMP environment variables
           17  +#    must refer to an existing directory writable by the current user.
           18  +#
           19  +# 4. The VS140COMNTOOLS environment variable must refer to the Visual Studio
           20  +#    2015 common tools directory.
           21  +#
           22  +# USAGE
           23  +#
           24  +# The first argument to this script is optional.  If specified, it must be the
           25  +# name of the VSIX file to test.
           26  +#
           27  +package require Tcl 8.4
           28  +
           29  +proc fail { {error ""} {usage false} } {
           30  +  if {[string length $error] > 0} then {
           31  +    puts stdout $error
           32  +    if {!$usage} then {exit 1}
           33  +  }
           34  +
           35  +  puts stdout "usage:\
           36  +[file tail [info nameofexecutable]]\
           37  +[file tail [info script]] \[vsixFile\]"
           38  +
           39  +  exit 1
           40  +}
           41  +
           42  +proc getEnvironmentVariable { name } {
           43  +  #
           44  +  # NOTE: Returns the value of the specified environment variable or an empty
           45  +  #       string for environment variables that do not exist in the current
           46  +  #       process environment.
           47  +  #
           48  +  return [expr {[info exists ::env($name)] ? $::env($name) : ""}]
           49  +}
           50  +
           51  +proc getTemporaryPath {} {
           52  +  #
           53  +  # NOTE: Returns the normalized path to the first temporary directory found
           54  +  #       in the typical set of environment variables used for that purpose
           55  +  #       or an empty string to signal a failure to locate such a directory.
           56  +  #
           57  +  set names [list]
           58  +
           59  +  foreach name [list TEMP TMP] {
           60  +    lappend names [string toupper $name] [string tolower $name] \
           61  +        [string totitle $name]
           62  +  }
           63  +
           64  +  foreach name $names {
           65  +    set value [getEnvironmentVariable $name]
           66  +
           67  +    if {[string length $value] > 0} then {
           68  +      return [file normalize $value]
           69  +    }
           70  +  }
           71  +
           72  +  return ""
           73  +}
           74  +
           75  +proc appendArgs { args } {
           76  +  #
           77  +  # NOTE: Returns all passed arguments joined together as a single string with
           78  +  #       no intervening spaces between arguments.
           79  +  #
           80  +  eval append result $args
           81  +}
           82  +
           83  +#
           84  +# NOTE: This is the entry point for this script.
           85  +#
           86  +set script [file normalize [info script]]
           87  +
           88  +if {[string length $script] == 0} then {
           89  +  fail "script file currently being evaluated is unknown" true
           90  +}
           91  +
           92  +set path [file dirname $script]
           93  +
           94  +###############################################################################
           95  +
           96  +#
           97  +# NOTE: Process and verify all the command line arguments.
           98  +#
           99  +set argc [llength $argv]
          100  +if {$argc > 1} then {fail}
          101  +
          102  +if {$argc == 1} then {
          103  +  set fileName [lindex $argv 0]
          104  +} else {
          105  +  set fileName [file join [file dirname $path] sqlite-UWP-output.vsix]
          106  +}
          107  +
          108  +if {[string length $fileName] == 0} then {
          109  +  fail "invalid VSIX file name"
          110  +}
          111  +
          112  +if {![file exists $fileName] || ![file isfile $fileName]} then {
          113  +  fail [appendArgs "VSIX file \"" $fileName "\" does not exist"]
          114  +}
          115  +
          116  +set envVarName VS140COMNTOOLS
          117  +set vsDirectory [getEnvironmentVariable $envVarName]
          118  +
          119  +if {[string length $vsDirectory] == 0} then {
          120  +  fail [appendArgs \
          121  +      "Visual Studio 2015 environment variable \"" $envVarName "\" missing"]
          122  +}
          123  +
          124  +if {![file exists $vsDirectory] || ![file isdirectory $vsDirectory]} then {
          125  +  fail [appendArgs \
          126  +      "Visual Studio 2015 directory \"" $vsDirectory \
          127  +      "\" does not exist"]
          128  +}
          129  +
          130  +set vsixInstaller [file join [file dirname $vsDirectory] IDE VSIXInstaller.exe]
          131  +
          132  +if {![file exists $vsixInstaller] || ![file isfile $vsixInstaller]} then {
          133  +  fail [appendArgs \
          134  +      "Visual Studio 2015 VSIX installer \"" $vsixInstaller \
          135  +      "\" does not exist"]
          136  +}
          137  +
          138  +set envVarName ProgramFiles
          139  +set programFiles [getEnvironmentVariable $envVarName]
          140  +
          141  +if {[string length $programFiles] == 0} then {
          142  +  fail [appendArgs \
          143  +      "Windows environment variable \"" $envVarName "\" missing"]
          144  +}
          145  +
          146  +if {![file exists $programFiles] || ![file isdirectory $programFiles]} then {
          147  +  fail [appendArgs \
          148  +      "Program Files directory \"" $programFiles "\" does not exist"]
          149  +}
          150  +
          151  +set msBuild [file join $programFiles MSBuild 14.0 Bin MSBuild.exe]
          152  +
          153  +if {![file exists $msBuild] || ![file isfile $msBuild]} then {
          154  +  fail [appendArgs \
          155  +      "MSBuild 14.0 executable file \"" $msBuild "\" does not exist"]
          156  +}
          157  +
          158  +set temporaryDirectory [getTemporaryPath]
          159  +
          160  +if {[string length $temporaryDirectory] == 0 || \
          161  +    ![file exists $temporaryDirectory] || \
          162  +    ![file isdirectory $temporaryDirectory]} then {
          163  +  fail "cannot locate a usable temporary directory"
          164  +}
          165  +
          166  +set installLogFileName [appendArgs \
          167  +    [file rootname [file tail $fileName]] -install- [pid] .log]
          168  +
          169  +set buildLogFileName [appendArgs \
          170  +    [file rootname [file tail $fileName]] -build- [pid] .log]
          171  +
          172  +set uninstallLogFileName [appendArgs \
          173  +    [file rootname [file tail $fileName]] -uninstall- [pid] .log]
          174  +
          175  +set command(1) [list exec [file nativename $vsixInstaller] /quiet /norepair]
          176  +lappend command(1) [appendArgs /logFile: $installLogFileName]
          177  +lappend command(1) [file nativename $fileName]
          178  +
          179  +set command(2) [list exec [file nativename $msBuild]]
          180  +lappend command(2) [file nativename [file join $path vsixtest.sln]]
          181  +lappend command(2) /target:Rebuild /property:Configuration=Release
          182  +
          183  +lappend command(2) [appendArgs \
          184  +    /logger:FileLogger,Microsoft.Build.Engine\;Logfile= \
          185  +    [file nativename [file join $temporaryDirectory $buildLogFileName]] \
          186  +    \;Verbosity=diagnostic]
          187  +
          188  +set command(3) [list exec [file nativename $vsixInstaller] /quiet /norepair]
          189  +lappend command(3) [appendArgs /logFile: $uninstallLogFileName]
          190  +lappend command(3) [appendArgs /uninstall:SQLite.UWP.2015]
          191  +
          192  +puts stdout [appendArgs \
          193  +    "Install log will be \"" [file nativename [file join \
          194  +    $temporaryDirectory $installLogFileName]] "\"."]
          195  +
          196  +puts stdout [appendArgs \
          197  +    "Build log will be \"" [file nativename [file join \
          198  +    $temporaryDirectory $buildLogFileName]] "\"."]
          199  +
          200  +puts stdout [appendArgs \
          201  +    "Uninstall log will be \"" [file nativename [file join \
          202  +    $temporaryDirectory $uninstallLogFileName]] "\"."]
          203  +
          204  +puts stdout [appendArgs \
          205  +    "First command is \"" $command(1) "\"."]
          206  +
          207  +puts stdout [appendArgs \
          208  +    "Second command is \"" $command(2) "\"."]
          209  +
          210  +puts stdout [appendArgs \
          211  +    "Third command is \"" $command(3) "\"."]
          212  +
          213  +# eval exec $command(1)
          214  +# eval exec $command(2)
          215  +# eval exec $command(3)

Added vsixtest/vsixtest.vcxproj.

            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  +
           78  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
           79  +
           80  +  <ImportGroup Label="ExtensionSettings">
           81  +  </ImportGroup>
           82  +
           83  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
           84  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
           85  +  </ImportGroup>
           86  +
           87  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
           88  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
           89  +  </ImportGroup>
           90  +
           91  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
           92  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
           93  +  </ImportGroup>
           94  +
           95  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
           96  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
           97  +  </ImportGroup>
           98  +
           99  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
          100  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
          101  +  </ImportGroup>
          102  +
          103  +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
          104  +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
          105  +  </ImportGroup>
          106  +
          107  +  <PropertyGroup Label="UserMacros" />
          108  +
          109  +  <PropertyGroup>
          110  +    
          111  +    <PackageCertificateKeyFile>vsixtest_TemporaryKey.pfx</PackageCertificateKeyFile>
          112  +    
          113  +  </PropertyGroup>
          114  +
          115  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
          116  +    <ClCompile>
          117  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          118  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          119  +    </ClCompile>
          120  +  </ItemDefinitionGroup>
          121  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
          122  +    <ClCompile>
          123  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          124  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          125  +    </ClCompile>
          126  +  </ItemDefinitionGroup>
          127  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
          128  +    <ClCompile>
          129  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          130  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          131  +    </ClCompile>
          132  +  </ItemDefinitionGroup>
          133  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
          134  +    <ClCompile>
          135  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          136  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          137  +    </ClCompile>
          138  +  </ItemDefinitionGroup>
          139  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
          140  +    <ClCompile>
          141  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          142  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          143  +    </ClCompile>
          144  +  </ItemDefinitionGroup>
          145  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
          146  +    <ClCompile>
          147  +      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
          148  +      <DisableSpecificWarnings>4453;28204</DisableSpecificWarnings>
          149  +    </ClCompile>
          150  +  </ItemDefinitionGroup>
          151  +
          152  +  <ItemGroup>
          153  +    <ClInclude Include="pch.h" />
          154  +    <ClInclude Include="App.xaml.h">
          155  +        <DependentUpon>App.xaml</DependentUpon>
          156  +    </ClInclude>
          157  +    <ClInclude Include="MainPage.xaml.h">
          158  +        <DependentUpon>MainPage.xaml</DependentUpon>
          159  +    </ClInclude>
          160  +  </ItemGroup>
          161  +
          162  +  <ItemGroup>
          163  +    <ApplicationDefinition Include="App.xaml">
          164  +      <SubType>Designer</SubType>
          165  +    </ApplicationDefinition>
          166  +    <Page Include="MainPage.xaml">
          167  +      <SubType>Designer</SubType>
          168  +    </Page>
          169  +  </ItemGroup>
          170  +
          171  +  <ItemGroup>
          172  +    <AppxManifest Include="Package.appxmanifest">
          173  +      <SubType>Designer</SubType>
          174  +    </AppxManifest>
          175  +    
          176  +    <None Include="vsixtest_TemporaryKey.pfx" />
          177  +    
          178  +  </ItemGroup>
          179  +
          180  +  <ItemGroup>
          181  +    <Image Include="Assets\LockScreenLogo.scale-200.png" />
          182  +    <Image Include="Assets\SplashScreen.scale-200.png" />
          183  +    <Image Include="Assets\Square150x150Logo.scale-200.png" />
          184  +    <Image Include="Assets\Square44x44Logo.scale-200.png" />
          185  +    <Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
          186  +    <Image Include="Assets\StoreLogo.png" />
          187  +    <Image Include="Assets\Wide310x150Logo.scale-200.png" />
          188  +  </ItemGroup>
          189  +
          190  +  <ItemGroup>
          191  +    <ClCompile Include="App.xaml.cpp">
          192  +        <DependentUpon>App.xaml</DependentUpon>
          193  +    </ClCompile>
          194  +    <ClCompile Include="MainPage.xaml.cpp">
          195  +        <DependentUpon>MainPage.xaml</DependentUpon>
          196  +    </ClCompile>
          197  +
          198  +    <ClCompile Include="pch.cpp">
          199  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
          200  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
          201  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
          202  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
          203  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
          204  +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
          205  +    </ClCompile>
          206  +  </ItemGroup>
          207  +
          208  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
          209  +
          210  +  <ImportGroup Label="ExtensionTargets">
          211  +  </ImportGroup>
          212  +
          213  +</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  +    <Image Include="Assets\Logo.scale-100.png">
           12  +      <Filter>Assets</Filter>
           13  +    </Image>
           14  +    <Image Include="Assets\SmallLogo.scale-100.png">
           15  +      <Filter>Assets</Filter>
           16  +    </Image>
           17  +    <Image Include="Assets\StoreLogo.scale-100.png">
           18  +      <Filter>Assets</Filter>
           19  +    </Image>
           20  +    <Image Include="Assets\SplashScreen.scale-100.png">
           21  +      <Filter>Assets</Filter>
           22  +    </Image>
           23  +  </ItemGroup>
           24  +</Project>

Added vsixtest/vsixtest_TemporaryKey.pfx.

cannot compute difference between binary files