* initial directory and project rename

* rename the rest of strings, update install directory, remove outdated section in readme about uninstallers directory, remove separate codeowner for readme.md

* whoops, missed a rename in CODEOWNERS
This commit is contained in:
wcheng-msft 2019-04-26 17:11:56 -07:00 коммит произвёл GitHub
Родитель 2707df93a7
Коммит 26b182cc29
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
88 изменённых файлов: 184 добавлений и 185 удалений

Просмотреть файл

@ -2,6 +2,5 @@
* @msftrubengu @ranm-msft @johnmcpms
/README.md @c-don
# Win7Installer owners
/preview/Win7Msix/ @wcheng-msft @jyvenugo @sarjanas-msft
/preview/Win7MSIX/README.md @andyliumsa
# MsixCoreInstaller owners
/preview/MsixCore/ @wcheng-msft @jyvenugo @sarjanas-msft

Просмотреть файл

@ -80,7 +80,7 @@ See [cmake-Xcode-integration](https://www.johnlamp.net/cmake-tutorial-2-ide-inte
## Build
### On Windows using Visual Studio nmake:
```
makewin.cmd <x86|x64>
makewin.cmd <x86|x64> -mt
This will start MSVC environment calling vcvarsall.bat <arch>, clean the output directory, call cmake and nmake. The latest Visual Studio version is obtained by calling vswhere.exe
```

Просмотреть файл

Просмотреть файл

@ -3,14 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2026
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Win7MSIXInstaller", "Win7MSIXInstaller\Win7MSIXInstaller.vcxproj", "{AAD31763-5E65-47FD-958A-08E35AB83025}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MsixCoreInstaller", "MsixCoreInstaller\MsixCoreInstaller.vcxproj", "{AAD31763-5E65-47FD-958A-08E35AB83025}"
ProjectSection(ProjectDependencies) = postProject
{46BE19BD-72E0-4452-9919-33A1F8A5F064} = {46BE19BD-72E0-4452-9919-33A1F8A5F064}
EndProjectSection
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Win7MSIXInstallerSetup", "Win7MSIXInstallerSetup\Win7MSIXInstallerSetup.vdproj", "{C79C79A4-00CE-40C8-BCCE-A5C8F28A4E8D}"
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "MsixCoreInstallerSetup", "MsixCoreInstallerSetup\MsixCoreInstallerSetup.vdproj", "{C79C79A4-00CE-40C8-BCCE-A5C8F28A4E8D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Win7MSIXInstallerLib", "Win7MSIXInstallerLib\Win7MSIXInstallerLib.vcxproj", "{46BE19BD-72E0-4452-9919-33A1F8A5F064}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MsixCoreInstallerLib", "MsixCoreInstallerLib\MsixCoreInstallerLib.vcxproj", "{46BE19BD-72E0-4452-9919-33A1F8A5F064}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B0C6E315-832B-4665-B979-4111A8C2F93B}"
ProjectSection(SolutionItems) = preProject

Просмотреть файл

@ -1,9 +1,9 @@
#include <iostream>
#include <iomanip>
#include "CommandLineInterface.hpp"
#include "Win7MSIXInstallerLogger.hpp"
#include "MsixCoreInstallerLogger.hpp"
#include <TraceLoggingProvider.h>
#include "..\Win7MSIXInstallerLib\GeneralUtil.hpp"
#include "..\MsixCoreInstallerLib\GeneralUtil.hpp"
#include "Util.hpp"
#include "resource.h"

Просмотреть файл

@ -8,7 +8,7 @@ static const std::wstring blockMapFile = L"\\AppxBlockMap.xml";
static const std::wstring manifestFile = L"\\AppxManifest.xml";
static const std::wstring classesKeyPath = L"SOFTWARE\\Classes";
static const std::wstring msix7ProgIDPrefix = L"Msix7";
static const std::wstring msixCoreProgIDPrefix = L"MsixCore";
static const std::wstring openWithProgIdsKeyName = L"OpenWithProgids";
static const std::wstring shellKeyName = L"Shell";
static const std::wstring openKeyName = L"open";

Просмотреть файл

@ -187,7 +187,7 @@ HRESULT Extractor::ExtractPayloadFiles()
HRESULT Extractor::CreatePackageRoot()
{
std::wstring packagePath = FilePathMappings::GetInstance().GetMsix7Directory();
std::wstring packagePath = FilePathMappings::GetInstance().GetMsixCoreDirectory();
if (!CreateDirectory(packagePath.c_str(), nullptr))
{
DWORD lastError = GetLastError();
@ -197,7 +197,7 @@ HRESULT Extractor::CreatePackageRoot()
}
}
if (!CreateDirectory((FilePathMappings::GetInstance().GetMsix7Directory() + m_msixRequest->GetPackageInfo()->GetPackageFullName()).c_str(), nullptr))
if (!CreateDirectory((FilePathMappings::GetInstance().GetMsixCoreDirectory() + m_msixRequest->GetPackageInfo()->GetPackageFullName()).c_str(), nullptr))
{
DWORD lastError = GetLastError();
if (lastError != ERROR_ALREADY_EXISTS)

Просмотреть файл

@ -11,7 +11,7 @@ class Extractor : IPackageHandler
{
public:
/// Extracts the package to the file system and registry.
/// Creates the package's root directory in c:\program files\msix7apps\<package>
/// Creates the package's root directory in c:\program files\msixcoreapps\<package>
/// Extracts the files from the package to the package's root directory
/// Copies over the VFS files from the package root directory to the actual file system location
/// Devirtualizes the registry keys from the package's registry.dat
@ -56,7 +56,7 @@ private:
HRESULT GetOutputStream(LPCWSTR path, LPCWSTR fileName, IStream** stream);
/// Creates the package root directory where all the files will be installed to.
/// This will be in c:\program files\msix7apps\<packagefullname>
/// This will be in c:\program files\msixcoreapps\<packagefullname>
HRESULT CreatePackageRoot();
/// Copies a VFS file from the package root to its resolved location.

Просмотреть файл

@ -67,7 +67,7 @@ std::wstring FilePathMappings::GetExecutablePath(std::wstring packageExecutableP
}
//The executable path exists in the root msix directory and was not devirtualized
std::wstring executablePath = m_msix7Directory;
std::wstring executablePath = m_msixCoreDirectory;
executablePath.append(packageFullName);
executablePath.push_back(L'\\');
executablePath.append(packageExecutablePath);
@ -142,6 +142,6 @@ HRESULT FilePathMappings::InitializePaths()
TextOle<WCHAR> programFilesPath;
RETURN_IF_FAILED(SHGetKnownFolderPath(FOLDERID_ProgramFiles, 0, NULL, &programFilesPath));
m_msix7Directory = std::wstring(programFilesPath.Get()) + std::wstring(L"\\Msix7apps\\");
m_msixCoreDirectory = std::wstring(programFilesPath.Get()) + std::wstring(L"\\MsixCoreApps\\");
return S_OK;
}

Просмотреть файл

@ -13,13 +13,13 @@ public:
std::map < std::wstring, std::wstring > GetMap() { return m_map; }
std::wstring GetMsix7Directory() { return m_msix7Directory; }
std::wstring GetMsixCoreDirectory() { return m_msixCoreDirectory; }
/// Gets the resolved full path to the executable.
/// The executable path could be the location of the exe within the package's Msix7 directory
/// The executable path could be the location of the exe within the package's MsixCore directory
/// or it could point to a VFS location.
/// @param packageExecutablePath - The path to the executable listed in the package's manifest
/// This is relative to the package's Msix7 directory.
/// This is relative to the package's MsixCore directory.
/// @param packageFullName - The packageFullName
/// @return the resolved full path to the executable
std::wstring GetExecutablePath(std::wstring packageExecutablePath, PCWSTR packageFullName);
@ -33,7 +33,7 @@ private:
}
private:
std::map < std::wstring, std::wstring > m_map;
std::wstring m_msix7Directory;
std::wstring m_msixCoreDirectory;
bool m_isInitialized = false;
HRESULT m_initializationResult = E_NOT_SET;
};

Просмотреть файл

@ -17,7 +17,7 @@ const PCWSTR FileTypeAssociation::HandlerName = L"FileTypeAssociation";
std::wstring FileTypeAssociation::CreateProgID(PCWSTR name)
{
std::wstring packageFullName = m_msixRequest->GetPackageInfo()->GetPackageFullName();
std::wstring progID = msix7ProgIDPrefix + packageFullName.substr(0, packageFullName.find(L"_")) + name;
std::wstring progID = msixCoreProgIDPrefix + packageFullName.substr(0, packageFullName.find(L"_")) + name;
return progID;
}

Просмотреть файл

@ -12,7 +12,7 @@
#include <filesystem>
#include "Util.hpp"
#include "Win7MSIXInstallerLogger.hpp"
#include "MsixCoreInstallerLogger.hpp"
// MSIXWindows.hpp define NOMINMAX because we want to use std::min/std::max from <algorithm>
// GdiPlus.h requires a definiton for min and max. Use std namespace *BEFORE* including it.
using namespace std;

Просмотреть файл

@ -4,7 +4,7 @@
#include <windows.h>
#include <string>
#include "Util.hpp"
#include "..\Win7MSIXInstallerLib\GeneralUtil.hpp"
#include "..\MsixCoreInstallerLib\GeneralUtil.hpp"
#include <IPackageManager.hpp>
#include <IMsixResponse.hpp>
#include "resource.h"

Просмотреть файл

@ -1,6 +1,6 @@
// Win7MSIXInstaller.cpp :
// The main entry point for Win7MSIXInstaller.exe. This application is
// a working preview for the MSIX/APPX installer for Windows 7
// MsixCoreInstaller.cpp :
// The main entry point for MsixCoreInstaller.exe. This application is
// a working preview for the MSIX/APPX installer for Windows 7 SP1 and higher OS versions
#include "MSIXWindows.hpp"
#include <shlobj_core.h>
#include <CommCtrl.h>
@ -11,13 +11,13 @@
#include <TraceLoggingProvider.h>
#include "InstallUI.hpp"
#include "CommandLineInterface.hpp"
#include "Win7MSIXInstallerLogger.hpp"
#include "MsixCoreInstallerLogger.hpp"
#include "Util.hpp"
#include "..\Win7MSIXInstallerLib\GeneralUtil.hpp"
#include "..\MsixCoreInstallerLib\GeneralUtil.hpp"
#include "resource.h"
#include <VersionHelpers.h>
#include <Win7MSIXInstallerActions.hpp>
#include <MsixCoreInstallerActions.hpp>
using namespace std;
using namespace MsixCoreLib;

Просмотреть файл

@ -22,7 +22,7 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{AAD31763-5E65-47FD-958A-08E35AB83025}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Win7MSIXInstaller</RootNamespace>
<RootNamespace>MsixCoreInstaller</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -90,7 +90,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\Win7MsixInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MsixCoreInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -99,7 +99,7 @@
<AdditionalLibraryDirectories>..\Debug;..\..\..\.vs\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalOptions>comctl32.lib %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>win7msixinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>msixcoreinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /Y /D "..\..\..\.vs\bin\msix.dll" "$(OutDir)"</Command>
@ -113,7 +113,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\Win7MsixInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MsixCoreInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
@ -122,7 +122,7 @@
<AdditionalLibraryDirectories>..\x64\Debug;..\..\..\.vs\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalOptions>comctl32.lib %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>win7msixinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>msixcoreinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /Y /D "..\..\..\.vs\bin\msix.dll" "$(OutDir)"</Command>
@ -142,7 +142,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\Win7MsixInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MsixCoreInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -153,7 +153,7 @@
<AdditionalLibraryDirectories>..\Release;..\..\..\.vs\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalOptions>comctl32.lib %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>win7msixinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>msixcoreinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /Y /D "..\..\..\.vs\bin\msix.dll" "$(OutDir)"</Command>
@ -169,7 +169,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\Win7MsixInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\MsixCoreInstallerLib\inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -180,7 +180,7 @@
<AdditionalLibraryDirectories>..\x64\Release;..\..\..\.vs\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
<AdditionalOptions>comctl32.lib %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>win7msixinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>msixcoreinstallerlib.lib;msix.lib;msi.lib;comctl32.lib;gdiplus.lib;version.lib;taskschd.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /Y /D "..\..\..\.vs\bin\msix.dll" "$(OutDir)"</Command>
@ -194,17 +194,17 @@
<ClInclude Include="InstallUI.hpp" />
<ClInclude Include="resource.h" />
<ClInclude Include="Util.hpp" />
<ClInclude Include="Win7MSIXInstallerLogger.hpp" />
<ClInclude Include="MsixCoreInstallerLogger.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="InstallUI.cpp" />
<ClCompile Include="CommandLineInterface.cpp" />
<ClCompile Include="Util.cpp" />
<ClCompile Include="Win7MSIXInstaller.cpp" />
<ClCompile Include="Win7MSIXInstallerLogger.cpp" />
<ClCompile Include="MsixCoreInstaller.cpp" />
<ClCompile Include="MsixCoreInstallerLogger.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Win7MSIXInstaller.rc" />
<ResourceCompile Include="MsixCoreInstaller.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="icon1.ico" />

Просмотреть файл

@ -24,7 +24,7 @@
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Win7MSIXInstallerLogger.hpp">
<ClInclude Include="MsixCoreInstallerLogger.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Util.hpp">
@ -38,10 +38,10 @@
<ClCompile Include="CommandLineInterface.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Win7MSIXInstallerLogger.cpp">
<ClCompile Include="MsixCoreInstallerLogger.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Win7MSIXInstaller.cpp">
<ClCompile Include="MsixCoreInstaller.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Util.cpp">
@ -49,7 +49,7 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Win7MSIXInstaller.rc">
<ResourceCompile Include="MsixCoreInstaller.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>

Просмотреть файл

@ -1,4 +1,4 @@
#include "Win7MSIXInstallerLogger.hpp"
#include "MsixCoreInstallerLogger.hpp"
// Define the GUID to use in TraceLoggingProviderRegister
// {db5b779e-2dcf-41bc-ab0e-40a6e02f1438}
// One way to enable:

Просмотреть файл

@ -213,5 +213,5 @@ std::wstring MsixRequest::GetPackageDirectoryPath()
if (m_packageInfo == nullptr)
return nullptr;
return FilePathMappings::GetInstance().GetMsix7Directory() + m_packageInfo->GetPackageFullName();
return FilePathMappings::GetInstance().GetMsixCoreDirectory() + m_packageInfo->GetPackageFullName();
}

Просмотреть файл

@ -82,7 +82,7 @@ HRESULT PopulatePackageInfo::ExecuteForAddRequest()
HRESULT PopulatePackageInfo::ExecuteForRemoveRequest()
{
auto packageDirectoryPath = FilePathMappings::GetInstance().GetMsix7Directory() + m_msixRequest->GetPackageFullName();
auto packageDirectoryPath = FilePathMappings::GetInstance().GetMsixCoreDirectory() + m_msixRequest->GetPackageFullName();
std::shared_ptr<InstalledPackage> package;
RETURN_IF_FAILED(GetPackageInfoFromManifest(packageDirectoryPath, MSIX_VALIDATION_OPTION::MSIX_VALIDATION_OPTION_ALLOWSIGNATUREORIGINUNKNOWN, &package));

Просмотреть файл

@ -13,7 +13,7 @@ HRESULT ProcessPotentialUpdate::ExecuteForAddRequest()
/// and each handler would have the opportunity to reason between the old and new packages to perform more efficient updating.
std::wstring currentPackageFamilyName = m_msixRequest->GetPackageInfo()->GetPackageFamilyName();
for (auto& p : std::experimental::filesystem::directory_iterator(FilePathMappings::GetInstance().GetMsix7Directory()))
for (auto& p : std::experimental::filesystem::directory_iterator(FilePathMappings::GetInstance().GetMsixCoreDirectory()))
{
std::wstring installedPackageFamilyName = GetFamilyNameFromFullName(p.path().filename());
if (CaseInsensitiveEquals(currentPackageFamilyName, installedPackageFamilyName)

Просмотреть файл

@ -1,12 +1,12 @@
#pragma once
#include <windows.h>
#include "AppxPackaging.hpp"
#include <winmeta.h>
#include <string.h>
#include <winmeta.h>
#include <string.h>
/// Helper to get string resource
///
/// @param resourceId - resource ID, these should be listed in resource.h
/// @return string for the resource, resolved from the stringtable defined in Win7MsixInstaller.rc
/// @return string for the resource, resolved from the stringtable defined in MsixCoreInstaller.rc
std::wstring GetStringResource(UINT resourceId);

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 7.4 KiB

После

Ширина:  |  Высота:  |  Размер: 7.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 894 B

После

Ширина:  |  Высота:  |  Размер: 894 B

Просмотреть файл

@ -1,6 +1,6 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Win7MSIXInstaller.rc
// Used by MsixCoreInstaller.rc
//
#define IDS_STRING_FAILED_REQUEST 102
#define IDS_STRING_FAILED_COM_INITIALIZATION 103

Просмотреть файл

@ -1,5 +1,5 @@
#include "Win7MSIXInstallerActions.hpp"
#include "PackageManager.hpp"
#include "MsixCoreInstallerActions.hpp"
#include "PackageManager.hpp"
using namespace MsixCoreLib;

Просмотреть файл

@ -22,9 +22,9 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{46BE19BD-72E0-4452-9919-33A1F8A5F064}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Win7MSIXInstaller</RootNamespace>
<RootNamespace>MsixCoreInstaller</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
<ProjectName>Win7MSIXInstallerLib</ProjectName>
<ProjectName>MsixCoreInstallerLib</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@ -89,9 +89,9 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>Win7MsixInstallerLib_EXPORTS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>MsixCoreInstallerLib_EXPORTS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>.;..\Win7MSIXInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..\MsixCoreInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -112,9 +112,9 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>Win7MsixInstallerLib_EXPORTS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>MsixCoreInstallerLib_EXPORTS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>.;..\Win7MSIXInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..\MsixCoreInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
@ -137,9 +137,9 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>Win7MsixInstallerLib_EXPORTS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>MsixCoreInstallerLib_EXPORTS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>.;..\Win7MSIXInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..\MsixCoreInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -164,9 +164,9 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>Win7MsixInstallerLib_EXPORTS;WIN32;NDEBUG;_CONSOLE;WIN7MSIXINSTALLER_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>MsixCoreInstallerLib_EXPORTS;WIN32;NDEBUG;_CONSOLE;MsixCoreInstaller_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>.;..\Win7MSIXInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..\MsixCoreInstaller;inc;..\..\..\.vs\src\msix;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -184,61 +184,61 @@
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\Win7MSIXInstaller\AddRemovePrograms.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\ComInterface.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\ComServer.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\Constants.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\ErrorHandler.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\StartupTask.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\ValidateTargetDeviceFamily.hpp" />
<ClInclude Include="..\MsixCoreInstaller\AddRemovePrograms.hpp" />
<ClInclude Include="..\MsixCoreInstaller\ComInterface.hpp" />
<ClInclude Include="..\MsixCoreInstaller\ComServer.hpp" />
<ClInclude Include="..\MsixCoreInstaller\Constants.hpp" />
<ClInclude Include="..\MsixCoreInstaller\ErrorHandler.hpp" />
<ClInclude Include="..\MsixCoreInstaller\StartupTask.hpp" />
<ClInclude Include="..\MsixCoreInstaller\ValidateTargetDeviceFamily.hpp" />
<ClInclude Include="inc\IMsixResponse.hpp" />
<ClInclude Include="inc\DeploymentOptions.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\Extractor.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\FileTypeAssociation.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\FootprintFiles.hpp" />
<ClInclude Include="..\MsixCoreInstaller\Extractor.hpp" />
<ClInclude Include="..\MsixCoreInstaller\FileTypeAssociation.hpp" />
<ClInclude Include="..\MsixCoreInstaller\FootprintFiles.hpp" />
<ClInclude Include="inc\IPackageManager.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\InstallComplete.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\MsixRequest.hpp" />
<ClInclude Include="..\MsixCoreInstaller\InstallComplete.hpp" />
<ClInclude Include="..\MsixCoreInstaller\MsixRequest.hpp" />
<ClInclude Include="GeneralUtil.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\FilePaths.hpp" />
<ClInclude Include="..\MsixCoreInstaller\FilePaths.hpp" />
<ClInclude Include="inc\IPackage.hpp" />
<ClInclude Include="inc\Win7MSIXInstallerActions.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\IPackageHandler.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\MsixResponse.hpp" />
<ClInclude Include="inc\MsixCoreInstallerActions.hpp" />
<ClInclude Include="..\MsixCoreInstaller\IPackageHandler.hpp" />
<ClInclude Include="..\MsixCoreInstaller\MsixResponse.hpp" />
<ClInclude Include="MsixTraceLoggingProvider.hpp" />
<ClInclude Include="PackageManager.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\Package.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\PopulatePackageInfo.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\ProcessPotentialUpdate.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\Protocol.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\RegistryDevirtualizer.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\RegistryKey.hpp" />
<ClInclude Include="..\Win7MSIXInstaller\StartMenuLink.hpp" />
<ClInclude Include="..\MsixCoreInstaller\Package.hpp" />
<ClInclude Include="..\MsixCoreInstaller\PopulatePackageInfo.hpp" />
<ClInclude Include="..\MsixCoreInstaller\ProcessPotentialUpdate.hpp" />
<ClInclude Include="..\MsixCoreInstaller\Protocol.hpp" />
<ClInclude Include="..\MsixCoreInstaller\RegistryDevirtualizer.hpp" />
<ClInclude Include="..\MsixCoreInstaller\RegistryKey.hpp" />
<ClInclude Include="..\MsixCoreInstaller\StartMenuLink.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\Win7MSIXInstaller\ComInterface.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\ComServer.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\ErrorHandler.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\Extractor.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\FilePaths.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\FileTypeAssociation.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\InstallComplete.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\MsixRequest.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\StartupTask.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\ValidateTargetDeviceFamily.cpp" />
<ClCompile Include="..\MsixCoreInstaller\ComInterface.cpp" />
<ClCompile Include="..\MsixCoreInstaller\ComServer.cpp" />
<ClCompile Include="..\MsixCoreInstaller\ErrorHandler.cpp" />
<ClCompile Include="..\MsixCoreInstaller\Extractor.cpp" />
<ClCompile Include="..\MsixCoreInstaller\FilePaths.cpp" />
<ClCompile Include="..\MsixCoreInstaller\FileTypeAssociation.cpp" />
<ClCompile Include="..\MsixCoreInstaller\InstallComplete.cpp" />
<ClCompile Include="..\MsixCoreInstaller\MsixRequest.cpp" />
<ClCompile Include="..\MsixCoreInstaller\StartupTask.cpp" />
<ClCompile Include="..\MsixCoreInstaller\ValidateTargetDeviceFamily.cpp" />
<ClCompile Include="GeneralUtil.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\MsixResponse.cpp" />
<ClCompile Include="..\MsixCoreInstaller\MsixResponse.cpp" />
<ClCompile Include="MsixTraceLoggingProvider.cpp" />
<ClCompile Include="PackageManager.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\Package.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\PopulatePackageInfo.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\ProcessPotentialUpdate.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\Protocol.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\RegistryDevirtualizer.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\RegistryKey.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\AddRemovePrograms.cpp" />
<ClCompile Include="..\Win7MSIXInstaller\StartMenuLink.cpp" />
<ClCompile Include="Win7MSIXInstallerActions.cpp" />
<ClCompile Include="..\MsixCoreInstaller\Package.cpp" />
<ClCompile Include="..\MsixCoreInstaller\PopulatePackageInfo.cpp" />
<ClCompile Include="..\MsixCoreInstaller\ProcessPotentialUpdate.cpp" />
<ClCompile Include="..\MsixCoreInstaller\Protocol.cpp" />
<ClCompile Include="..\MsixCoreInstaller\RegistryDevirtualizer.cpp" />
<ClCompile Include="..\MsixCoreInstaller\RegistryKey.cpp" />
<ClCompile Include="..\MsixCoreInstaller\AddRemovePrograms.cpp" />
<ClCompile Include="..\MsixCoreInstaller\StartMenuLink.cpp" />
<ClCompile Include="MsixCoreInstallerActions.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

Просмотреть файл

@ -1,4 +1,4 @@
#include "Win7MSIXInstallerLogger.hpp"
#include "MsixCoreInstallerLogger.hpp"
// Define the GUID to use in TraceLoggingProviderRegister
// {033321d3-d599-48e0-868d-c59f15901637}

Просмотреть файл

@ -79,7 +79,7 @@ HRESULT PackageManager::RemovePackage(const wstring & packageFullName)
}
return impl->ProcessRequest();
}
shared_ptr<IInstalledPackage> PackageManager::GetPackageInfo(const wstring & msix7Directory, const wstring & directoryPath)
shared_ptr<IInstalledPackage> PackageManager::GetPackageInfo(const wstring & msixCoreDirectory, const wstring & directoryPath)
{
std::shared_ptr<InstalledPackage> packageInfo;
auto res = PopulatePackageInfo::GetPackageInfoFromManifest(directoryPath.c_str(), MSIX_VALIDATION_OPTION::MSIX_VALIDATION_OPTION_FULL, &packageInfo);
@ -98,9 +98,9 @@ shared_ptr<IInstalledPackage> PackageManager::FindPackage(const wstring & packag
{
return nullptr;
}
wstring msix7Directory = filemapping.GetMsix7Directory();
wstring packageDirectoryPath = msix7Directory + packageFullName;
auto package = GetPackageInfo(msix7Directory, packageDirectoryPath);
wstring msixCoreDirectory = filemapping.GetMsixCoreDirectory();
wstring packageDirectoryPath = msixCoreDirectory + packageFullName;
auto package = GetPackageInfo(msixCoreDirectory, packageDirectoryPath);
return package;
}
@ -112,14 +112,14 @@ shared_ptr<IInstalledPackage> PackageManager::FindPackageByFamilyName(const wstr
{
return nullptr;
}
auto msix7Directory = filemapping.GetMsix7Directory();
for (auto& p : experimental::filesystem::directory_iterator(msix7Directory))
auto msixCoreDirectory = filemapping.GetMsixCoreDirectory();
for (auto& p : experimental::filesystem::directory_iterator(msixCoreDirectory))
{
auto installedAppFamilyName = GetFamilyNameFromFullName(p.path().filename());
if (CaseInsensitiveEquals(installedAppFamilyName, packageFamilyName))
{
return GetPackageInfo(msix7Directory, p.path());
return GetPackageInfo(msixCoreDirectory, p.path());
}
}
return nullptr;
@ -134,10 +134,10 @@ unique_ptr<vector<shared_ptr<IInstalledPackage>>> PackageManager::FindPackages()
{
return packages;
}
auto msix7Directory = filemapping.GetMsix7Directory();
for (auto& p : experimental::filesystem::directory_iterator(msix7Directory))
auto msixCoreDirectory = filemapping.GetMsixCoreDirectory();
for (auto& p : experimental::filesystem::directory_iterator(msixCoreDirectory))
{
auto packageInfo = GetPackageInfo(msix7Directory, p.path());
auto packageInfo = GetPackageInfo(msixCoreDirectory, p.path());
if (packageInfo != nullptr)
{
packages->push_back(packageInfo);

Просмотреть файл

@ -18,6 +18,6 @@ namespace MsixCoreLib {
std::unique_ptr<std::vector<std::shared_ptr<IInstalledPackage>>> FindPackages() override;
std::shared_ptr<IPackage> GetMsixPackageInfo(const std::wstring & msixFullPath) override;
private:
std::shared_ptr<IInstalledPackage> GetPackageInfo(const std::wstring & msix7Directory, const std::wstring & directoryPath);
std::shared_ptr<IInstalledPackage> GetPackageInfo(const std::wstring & msixCoreDirectory, const std::wstring & directoryPath);
};
}

Просмотреть файл

@ -3,7 +3,7 @@
"VSVersion" = "3:800"
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
"IsWebType" = "8:FALSE"
"ProjectName" = "8:Win7MSIXInstallerSetup"
"ProjectName" = "8:MsixCoreInstallerSetup"
"LanguageId" = "3:1033"
"CodePage" = "3:1252"
"UILanguageId" = "3:1033"
@ -39,7 +39,7 @@
"DisplayName" = "8:Debug"
"IsDebugOnly" = "11:TRUE"
"IsReleaseOnly" = "11:FALSE"
"OutputFilename" = "8:Debug\\Win7MSIXInstallerSetup.msi"
"OutputFilename" = "8:Debug\\MsixCoreInstallerSetup.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
@ -71,7 +71,7 @@
"DisplayName" = "8:Release"
"IsDebugOnly" = "11:FALSE"
"IsReleaseOnly" = "11:TRUE"
"OutputFilename" = "8:Release\\Win7MSIXInstallerSetup.msi"
"OutputFilename" = "8:Release\\MsixCoreInstallerSetup.msi"
"PackageFilesAs" = "3:2"
"PackageFileSize" = "3:-2147483648"
"CabType" = "3:1"
@ -140,8 +140,8 @@
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E013830FF86B4AF8B5CB34E6E4549DBB"
{
"SourcePath" = "8:..\\x64\\Release\\Win7MSIXInstaller.exe"
"TargetName" = "8:Win7MSIXInstaller.exe"
"SourcePath" = "8:..\\x64\\Release\\MsixCoreInstaller.exe"
"TargetName" = "8:MsixCoreInstaller.exe"
"Tag" = "8:"
"Folder" = "8:_C971D80774084D46BBCB0D87CF82D376"
"Condition" = "8:"
@ -312,7 +312,7 @@
"Product"
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Win7MSIXInstaller"
"ProductName" = "8:MsixCoreInstaller"
"ProductCode" = "8:{B8302D05-A559-445F-844B-1E33C8C32FA6}"
"PackageCode" = "8:{BE6B9E1B-FE64-4874-8659-F293BB888ED1}"
"UpgradeCode" = "8:{11167E6C-6967-4F9D-B35D-5EA97ABC094F}"
@ -325,7 +325,7 @@
"Manufacturer" = "8:Microsoft"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
"Title" = "8:Win7MSIXInstaller"
"Title" = "8:MsixCoreInstaller"
"Subject" = "8:"
"ARPCONTACT" = "8:WheelPod"
"Keywords" = "8:"

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 27 KiB

После

Ширина:  |  Высота:  |  Размер: 27 KiB

Просмотреть файл

@ -0,0 +1,51 @@
# MsixCore
Copyright (c) 2018 Microsoft Corp. All rights reserved.
# Description
MsixCore is a preview for the Windows 7 handler for MSIX. The codebase comprises of a Visual Studio solution file that builds MsixCoreInstaller Application.
The current preview includes a user interface that will initiate the install of the MSIX package. It will unpack the files in the VFS folder to the local computer, register the application in Add/Remove Programs, places a link to the executable in the Start Menu. The application can then be uninstalled by removing it from Add\Remove Programs.
The main folder of interest is the MsixCoreApps directory created in Program Files. MsixCoreApps contain the extracted packages that have been installed specifically with the directory name being packageFullName.
(NOTE: Uninstalling the application from Add/Remove Programs in the MsixCore preview requires the MsixCoreInstaller application to be installed using the default settings of the MSI project detailed below.)
# Prerequisites
In order to create the MSI project in Visual Studio, the MSI Installer Projects for Visual Studio must be installed -
(https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects)
# Build
Clone the msix-packaging repository to a local workspace and build it x64 (see https://github.com/Microsoft/msix-packaging for prerequisites) using the -mt flag, which is necessary to avoid vclibs dependency; this should output the msix.dll, which is consumed by MsixCore project.
```
Makewin.cmd x64 -mt
```
Open the msix-packaging/preview/MsixCore/MsixCoreInstaller.sln file in Visual Studio 2017. Build the MsixCoreInstaller project in release/x64 to create the MsixCoreInstaller.exe
## Using a MSI Setup Project
Once the MsixCoreInstaller project has been built, the MsixCoreInstallerSetup project can be built.
The MsixCoreInstallerSetup Project creates a .msi package to deploy the msix.dll and MsixCoreInstaller.exe onto a Windows 7 SP1 or higher machine. The MSI Setup Project will register the specific file type association for the .msix and .appx extensions such that the installer is initiated directly from double-clicking a MSIX or APPX package.
## Using the Command Line
The executables can also be manually deployed to a Windows 7 SP1 or higher machine without using the MSI setup project. Place the msix.dll and MsixCoreInstaller.exe in the same location.
Sample packages can be found at msix-packaging/preview/MsixCore/tests; these can be copied over to a Windows 7 SP1 or higher machine and installed, although they may require adding the APPX_TEST_ROOT.cer (in the same tests folder) to the trusted store in order to install.
```
certutil -addstore root APPX_TEST_ROOT.cer
```
Installation - Using command prompt or PowerShell, navigate to the directory that contains the executables and run the following command to install notepadplus.msix.
```
MsixCoreInstaller.exe -AddPackage C:\SomeDirectory\notepadplus.msix
```
Uninstallation -
```
MsixCoreInstaller.exe -RemovePackage notepadplus_0.0.0.1_x64__8wekyb3d8bbwe
```
## Build Status
[![Build status](https://microsoft.visualstudio.com/xPlatAppx/_apis/build/status/CIGitHub-for-MsixCoreInstaller)](https://github.com/Microsoft/msix-packaging/releases/tag/MsixCoreInstaller-preview)
If succeeded, the built MSI can be downloaded from the release tab.

Просмотреть файл

Просмотреть файл

@ -1,9 +1,9 @@
# Caution: MAY DESTROY TEST ENVIRONMENT!!! Do Not Execute on a production machine
# Setup: Copy entire msixtest folder (which includes this script) onto Win7 machine. Install the MSI or copy the binaries (msix.dll and Win7MSIXInstaller.exe) to the Win7 machine
# Setup: Copy entire msixtest folder (which includes this script) onto Win7 SP1 or higher test machine. Install the MSI or copy the binaries (msix.dll and MsixCoreInstaller.exe) to the test machine
# assumption: all the files in the msixtest folder are co-located and in the working directory when this script is executed.
# assumption: Windows installed to c:\ drive, Program Files etc. folders are in expected places
# binaryFolder points to the location of the msix.dll and Win7MSIXInstaller.exe binaries
# binaryFolder points to the location of the msix.dll and MsixCoreInstaller.exe binaries
# if omitted, assumes you've copied the binaries into the working directory
param (
[Parameter(ParameterSetName="binaryFolder", Mandatory=$false)]
@ -17,11 +17,11 @@ if (-not $PSBoundParameters.ContainsKey('binaryFolder'))
$binaryFolder = $pwd
}
$executable = join-path $binaryFolder "Win7MSIXInstaller.exe"
$executable = join-path $binaryFolder "MsixCoreInstaller.exe"
if (-not (test-path $executable))
{
write-host ("Cannot run tests: $executable not found. Use -binaryFolder parameter to point to location of Win7MSIXInstaller.exe") -foregroundcolor red
write-host ("Cannot run tests: $executable not found. Use -binaryFolder parameter to point to location of MsixCoreInstaller.exe") -foregroundcolor red
exit
}
@ -253,7 +253,7 @@ else
ShowTestHeader("Update package removes old package and checks windows.protocol extensions")
$output = & $executable -AddPackage VLC-3.0.6_1.0.0.0_x64__8wekyb3d8bbwe-missingsomeftas.msix -quietUx
$vlc1msixpath = "C:\program files\msix7apps\VLC-3.0.6_1.0.0.0_x64__8wekyb3d8bbwe"
$vlc1msixpath = "C:\program files\msixcoreapps\VLC-3.0.6_1.0.0.0_x64__8wekyb3d8bbwe"
$vlcProtocolRegPath = "HKCR:\VLC"
if ($output -eq $null)
{
@ -263,7 +263,7 @@ if ($output -eq $null)
$output = & $executable -AddPackage VLC-3.0.6_2.0.0.0_x64__8wekyb3d8bbwe-withprotocol.msix -quietUx
if ($output -eq $null)
{
$vlc2msixpath = "C:\program files\msix7apps\VLC-3.0.6_2.0.0.0_x64__8wekyb3d8bbwe"
$vlc2msixpath = "C:\program files\msixcoreapps\VLC-3.0.6_2.0.0.0_x64__8wekyb3d8bbwe"
$vlc1Exists = (test-path $vlc1msixpath)
$vlc2Exists = (test-path $vlc2msixpath)
$vlcRegExists = (test-path $vlcProtocolRegPath)

Просмотреть файл

@ -1,51 +0,0 @@
# Win7Msix
Copyright (c) 2018 Microsoft Corp. All rights reserved.
# Description
Win7Msix is a preview for the Windows 7 handler for MSIX. The codebase comprises of a Visual Studio solution file that builds Win7MSIXInstaller Application.
The current preview includes a user interface that will initiate the extraction of the MSIX package. It will unpack the files in the VFS folder to the local computer, register the application in Add/Remove Programs, places a link to the executable in the Start Menu and generates an uninstallation script, which is an XML file that contains all the directories created, files unpacked and registry keys written. The application can then be uninstalled by removing it from Add\Remove Programs.
The main folders of interest are the hidden WindowsApps and Uninstallers created in Program Files. WindowsApps contain the extracted packages that have been installed specifically with the directory name being packageFullName. Uninstallers contains all the uninstall scripts that will be used as a parameter for uninstalling the package.
(NOTE: Uninstalling the application from Add/Remove Programs in the Win7Msix preview requires the Win7MsixInstaller application to be installed using the default settings of the MSI project detailed below.)
# Prerequisites
In order to create the MSI project in Visual Studio, the MSI Installer Projects for Visual Studio must be installed -
(https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects)
# Build
Clone the msix-packaging repository to a local workspace and build it x64 (see https://github.com/Microsoft/msix-packaging for prerequisites) using the -mt flag, which is necessary to avoid vclibs dependency; this should output the msix.dll, which is consumed by Win7Msix project.
```
Makewin.cmd x64 -mt
```
Open the msix-packaging/preview/Win7Msix/Win7MSIXInstaller.sln file in Visual Studio 2017. Build the Win7MSIXInstaller project in release/x64 to create the Win7MsixInstaller.exe
## Using a MSI Setup Project
Once the Win7MSIXInstaller project has been built, the Win7MSIXInstallerSetup project can be built.
The Win7MSIXInstallerSetup Project creates a .msi package to deploy the msix.dll and Win7MsixInstaller.exe onto a Win 7 machine. The MSI Setup Project will register the specific file type association for the .msix and .appx extensions such that the installer is initiated directly from double-clicking a MSIX or APPX package.
## Using the Command Line
The executables can also be manually deployed to a Windows 7 machine without using the MSI setup project. Place the msix.dll and Win7MsixInstaller.exe in the same location.
Sample packages can be found at msix-packaging/preview/Win7Msix/tests; these can be copied over to a Windows 7 machine and installed, although they may require adding the APPX_TEST_ROOT.cer (in the same tests folder) to the trusted store in order to install.
```
certutil -addstore root APPX_TEST_ROOT.cer
```
Installation - Using command prompt or PowerShell, navigate to the directory that contains the executables and run the following command to install notepadplus.msix.
```
Win7MSIXInstaller.exe -AddPackage C:\SomeDirectory\notepadplus.msix
```
Uninstallation -
```
Win7MSIXInstaller.exe -RemovePackage notepadplus_0.0.0.1_x64__8wekyb3d8bbwe
```
## Build Status
[![Build status](https://microsoft.visualstudio.com/xPlatAppx/_apis/build/status/CIGitHub-for-Win7MsixInstaller)](https://github.com/Microsoft/msix-packaging/releases/tag/Win7MsixInstaller-preview)
If succeeded, the built MSI can be downloaded from the release tab.

Двоичные данные
preview/Win7Msix/Tests/VLC.msix

Двоичный файл не отображается.