diff --git a/.gitignore b/.gitignore
index ac90037..283a3da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -349,7 +349,6 @@ ASALocalRun/
*.PVS-Studio.*
# Classic-Shell specific ignores
-Src/StartMenu/Skins/
Src/Setup/Output/
Src/Setup/Final/
Src/Setup/Temp/
diff --git a/Src/ClassicExplorer/ClassicExplorerSettings/ClassicExplorerSettings.vcxproj b/Src/ClassicExplorer/ClassicExplorerSettings/ClassicExplorerSettings.vcxproj
index a001d90..592247f 100644
--- a/Src/ClassicExplorer/ClassicExplorerSettings/ClassicExplorerSettings.vcxproj
+++ b/Src/ClassicExplorer/ClassicExplorerSettings/ClassicExplorerSettings.vcxproj
@@ -35,9 +35,6 @@
-
- ..\$(Configuration)\
-
NotUsing
diff --git a/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.vcxproj b/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.vcxproj
index d6f006d..57068dd 100644
--- a/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.vcxproj
+++ b/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.vcxproj
@@ -48,11 +48,9 @@
- ..\$(Configuration)\
$(ProjectName)_32
- ..\$(Configuration)64\
$(ProjectName)_64
diff --git a/Src/Common.props b/Src/Common.props
index fb5e22e..62a42c9 100644
--- a/Src/Common.props
+++ b/Src/Common.props
@@ -9,12 +9,12 @@
- $(Configuration)\
- $(Configuration)\
+ $(MSBuildThisFileDirectory)..\build\bin\$(Configuration)\
+ $(MSBuildThisFileDirectory)..\build\obj\$(ProjectName)\$(Configuration)\
- $(Configuration)64\
- $(Configuration)64\
+ $(MSBuildThisFileDirectory)..\build\bin\$(Configuration)64\
+ $(MSBuildThisFileDirectory)..\build\obj\$(ProjectName)\$(Configuration)64\
diff --git a/Src/Lib/Lib.vcxproj b/Src/Lib/Lib.vcxproj
index ee0b091..5e31f75 100644
--- a/Src/Lib/Lib.vcxproj
+++ b/Src/Lib/Lib.vcxproj
@@ -39,6 +39,9 @@
+
+ $(IntDir)
+
_LIB;%(PreprocessorDefinitions)
diff --git a/Src/Setup/BuildBinaries.bat b/Src/Setup/BuildBinaries.bat
index 58045db..96e6792 100644
--- a/Src/Setup/BuildBinaries.bat
+++ b/Src/Setup/BuildBinaries.bat
@@ -19,11 +19,11 @@ echo --- 32bit
REM ********* Make en-US.dll
cd ..
-Setup\Utility\Release\Utility.exe makeEN ClassicExplorer\Setup\ClassicExplorer32.dll StartMenu\Setup\StartMenuDLL.dll ClassicIE\Setup\ClassicIEDLL_32.dll Update\Release\Update.exe
+..\build\bin\Release\Utility.exe makeEN ..\build\bin\Setup\ClassicExplorer32.dll ..\build\bin\Setup\StartMenuDLL.dll ..\build\bin\Setup\ClassicIEDLL_32.dll ..\build\bin\Release\Update.exe
@if ERRORLEVEL 1 exit /b 1
-Setup\Utility\Release\Utility.exe extract en-US.dll en-US.csv
-copy /B en-US.dll Localization\English > nul
+..\build\bin\Release\Utility.exe extract en-US.dll en-US.csv
+move en-US.dll Localization\English > nul
move en-US.csv Localization\English > nul
cd Setup
@@ -31,40 +31,40 @@ cd Setup
REM ********* Copy binaries
-copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.dll Output > nul
-copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.exe Output > nul
-copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.dll Output > nul
-copy /B ..\ClassicIE\Setup\ClassicIE_32.exe Output > nul
-copy /B ..\StartMenu\Setup\StartMenu.exe Output > nul
-copy /B ..\StartMenu\Setup\StartMenuDLL.dll Output > nul
-copy /B ..\Update\Release\Update.exe Output > nul
-copy /B ..\Update\DesktopToasts\Release\DesktopToasts.dll Output > nul
-copy /B ..\StartMenu\StartMenuHelper\Setup\StartMenuHelper32.dll Output > nul
-copy /B ..\Setup\SetupHelper\Release\SetupHelper.exe Output > nul
+copy /B ..\..\build\bin\Setup\ClassicExplorer32.dll Output > nul
+copy /B ..\..\build\bin\Setup\ClassicExplorerSettings.exe Output > nul
+copy /B ..\..\build\bin\Setup\ClassicIEDLL_32.dll Output > nul
+copy /B ..\..\build\bin\Setup\ClassicIE_32.exe Output > nul
+copy /B ..\..\build\bin\Setup\StartMenu.exe Output > nul
+copy /B ..\..\build\bin\Setup\StartMenuDLL.dll Output > nul
+copy /B ..\..\build\bin\Setup\StartMenuHelper32.dll Output > nul
+copy /B ..\..\build\bin\Release\Update.exe Output > nul
+copy /B ..\..\build\bin\Release\DesktopToasts.dll Output > nul
+copy /B ..\..\build\bin\Release\SetupHelper.exe Output > nul
-copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.dll Output\x64 > nul
-copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.dll Output\x64 > nul
-copy /B ..\ClassicIE\Setup64\ClassicIE_64.exe Output\x64 > nul
-copy /B ..\StartMenu\Setup64\StartMenu.exe Output\x64 > nul
-copy /B ..\StartMenu\Setup64\StartMenuDLL.dll Output\x64 > nul
-copy /B ..\StartMenu\StartMenuHelper\Setup64\StartMenuHelper64.dll Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicExplorer64.dll Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicIEDLL_64.dll Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicIE_64.exe Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenu.exe Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenuDLL.dll Output\x64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenuHelper64.dll Output\x64 > nul
-copy /B "..\StartMenu\Skins\Classic Skin.skin" Output > nul
-copy /B "..\StartMenu\Skins\Full Glass.skin" Output > nul
-copy /B "..\StartMenu\Skins\Smoked Glass.skin" Output > nul
-copy /B "..\StartMenu\Skins\Windows Aero.skin" Output > nul
-copy /B "..\StartMenu\Skins\Windows Basic.skin" Output > nul
-copy /B "..\StartMenu\Skins\Windows XP Luna.skin" Output > nul
-copy /B "..\StartMenu\Skins\Windows 8.skin" Output > nul
-copy /B "..\StartMenu\Skins\Metro.skin" Output > nul
-copy /B "..\StartMenu\Skins\Classic Skin.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Windows Aero.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Windows 8.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Midnight.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Metro.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Metallic.skin7" Output > nul
-copy /B "..\StartMenu\Skins\Immersive.skin" Output > nul
-copy /B "..\StartMenu\Skins\Immersive.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Classic Skin.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Full Glass.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Smoked Glass.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Windows Aero.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Windows Basic.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Windows XP Luna.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Windows 8.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Metro.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Classic Skin.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Windows Aero.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Windows 8.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Midnight.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Metro.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Metallic.skin7" Output > nul
+copy /B "..\..\build\bin\Skins\Immersive.skin" Output > nul
+copy /B "..\..\build\bin\Skins\Immersive.skin7" Output > nul
REM ********* Collect debug info
@@ -72,45 +72,45 @@ md Output\PDB32
md Output\PDB64
REM Explorer 32
-copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\ClassicExplorer32.pdb Output\PDB32 > nul
copy /B Output\ClassicExplorer32.dll Output\PDB32 > nul
-copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\ClassicExplorerSettings.pdb Output\PDB32 > nul
copy /B Output\ClassicExplorerSettings.exe Output\PDB32 > nul
REM Explorer 64
-copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicExplorer64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicExplorer64.dll Output\PDB64 > nul
REM IE 32
-copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\ClassicIEDLL_32.pdb Output\PDB32 > nul
copy /B Output\ClassicIEDLL_32.dll Output\PDB32 > nul
-copy /B ..\ClassicIE\Setup\ClassicIE_32.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\ClassicIE_32.pdb Output\PDB32 > nul
copy /B Output\ClassicIE_32.exe Output\PDB32 > nul
REM IE 64
-copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicIEDLL_64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicIEDLL_64.dll Output\PDB64 > nul
-copy /B ..\ClassicIE\Setup64\ClassicIE_64.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\ClassicIE_64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicIE_64.exe Output\PDB64 > nul
REM Menu 32
-copy /B ..\StartMenu\Setup\StartMenu.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\StartMenu.pdb Output\PDB32 > nul
copy /B Output\StartMenu.exe Output\PDB32 > nul
-copy /B ..\StartMenu\Setup\StartMenuDLL.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\StartMenuDLL.pdb Output\PDB32 > nul
copy /B Output\StartMenuDLL.dll Output\PDB32 > nul
-copy /B ..\StartMenu\StartMenuHelper\Setup\StartMenuHelper32.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Setup\StartMenuHelper32.pdb Output\PDB32 > nul
copy /B Output\StartMenuHelper32.dll Output\PDB32 > nul
-copy /B ..\Update\Release\Update.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Release\Update.pdb Output\PDB32 > nul
copy /B Output\Update.exe Output\PDB32 > nul
-copy /B ..\Update\DesktopToasts\Release\DesktopToasts.pdb Output\PDB32 > nul
+copy /B ..\..\build\bin\Release\DesktopToasts.pdb Output\PDB32 > nul
copy /B Output\DesktopToasts.dll Output\PDB32 > nul
REM Menu 64
-copy /B ..\StartMenu\Setup64\StartMenu.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenu.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenu.exe Output\PDB64 > nul
-copy /B ..\StartMenu\Setup64\StartMenuDLL.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenuDLL.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenuDLL.dll Output\PDB64 > nul
-copy /B ..\StartMenu\StartMenuHelper\Setup64\StartMenuHelper64.pdb Output\PDB64 > nul
+copy /B ..\..\build\bin\Setup64\StartMenuHelper64.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenuHelper64.dll Output\PDB64 > nul
@@ -157,11 +157,11 @@ if exist Output\PolicyDefinitions.zip (
del Output\PolicyDefinitions.zip
)
cd ..\Localization\English
-..\..\StartMenu\Setup\StartMenu.exe -saveadmx en-US
+..\..\..\build\bin\Setup\StartMenu.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
-..\..\ClassicExplorer\Setup\ClassicExplorerSettings.exe -saveadmx en-US
+..\..\..\build\bin\Setup\ClassicExplorerSettings.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
-..\..\ClassicIE\Setup\ClassicIE_32.exe -saveadmx en-US
+..\..\..\build\bin\Setup\ClassicIE_32.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
md en-US
copy /B *.adml en-US > nul
diff --git a/Src/Setup/BuildInstaller.bat b/Src/Setup/BuildInstaller.bat
index a6a7688..468a274 100644
--- a/Src/Setup/BuildInstaller.bat
+++ b/Src/Setup/BuildInstaller.bat
@@ -60,7 +60,7 @@ light Temp\Setup64.wixobj -nologo -out Temp\Setup64.msi -ext WixUIExtension -ext
REM ********* Build MSI Checksums
echo --- MSI Checksums
-Utility\Release\Utility.exe crcmsi Temp
+..\..\build\bin\Release\Utility.exe crcmsi Temp
@if ERRORLEVEL 1 exit /b 1
REM ********* Build bootstrapper
@@ -73,10 +73,10 @@ for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio
if exist Final rd /Q /S Final
md Final
-copy /B Release\Setup.exe Final\%CS_INSTALLER_NAME%.exe > nul
+copy /B ..\..\build\bin\Release\Setup.exe Final\%CS_INSTALLER_NAME%.exe > nul
if defined APPVEYOR (
- appveyor PushArtifact Release\Setup.exe -FileName %CS_INSTALLER_NAME%.exe
+ appveyor PushArtifact Final\%CS_INSTALLER_NAME%.exe
)
SET CS_LANG_FOLDER=
diff --git a/Src/Setup/Utility/Utility.rc b/Src/Setup/Utility/Utility.rc
index 11a290c..5e6ee69 100644
--- a/Src/Setup/Utility/Utility.rc
+++ b/Src/Setup/Utility/Utility.rc
@@ -52,7 +52,7 @@ END
// FILE
//
-1 FILE "Release64\\Utility.exe"
+1 FILE "..\\..\\..\\build\\bin\\Release64\\Utility.exe"
/////////////////////////////////////////////////////////////////////////////
//
diff --git a/Src/Setup/en-US/en-US.vcxproj b/Src/Setup/en-US/en-US.vcxproj
index 9801e17..4c16e2d 100644
--- a/Src/Setup/en-US/en-US.vcxproj
+++ b/Src/Setup/en-US/en-US.vcxproj
@@ -26,6 +26,7 @@
..\..\
+ ..\..\..\build\obj\$(ProjectName)\
true
false
diff --git a/Src/Skins/Skin.props b/Src/Skins/Skin.props
index bfd274d..baece5e 100644
--- a/Src/Skins/Skin.props
+++ b/Src/Skins/Skin.props
@@ -1,8 +1,8 @@
- $(SolutionDir)StartMenu\Skins\
- $(Configuration)\
+ $(MSBuildThisFileDirectory)..\..\build\bin\Skins\
+ $(MSBuildThisFileDirectory)..\..\build\obj\Skins\$(ProjectName)\
true
false
true
diff --git a/Src/StartMenu/StartMenuDLL/StartMenuDLL.vcxproj b/Src/StartMenu/StartMenuDLL/StartMenuDLL.vcxproj
index b81c5c6..1da1c24 100644
--- a/Src/StartMenu/StartMenuDLL/StartMenuDLL.vcxproj
+++ b/Src/StartMenu/StartMenuDLL/StartMenuDLL.vcxproj
@@ -47,12 +47,6 @@
-
- ..\$(Configuration)\
-
-
- ..\$(Configuration)64\
-
_USRDLL;CLASSICSTARTMENUDLL_EXPORTS;%(PreprocessorDefinitions)