diff --git a/win/win32/.gitignore b/win/win32/.gitignore
index ad63feee5..00483b5c1 100644
--- a/win/win32/.gitignore
+++ b/win/win32/.gitignore
@@ -2,4 +2,4 @@
*.bmp
*.ico
*.db
-
+record
diff --git a/win/win32/nethack.rc b/win/win32/nethack.rc
new file mode 100644
index 000000000..0877532d2
--- /dev/null
+++ b/win/win32/nethack.rc
@@ -0,0 +1,14 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_NETHACKW ICON DISCARDABLE "NETHACK.ICO"
+
+
diff --git a/win/win32/vs2015/NetHack.vcxproj b/win/win32/vs2015/NetHack.vcxproj
index b9f29c289..306f74ae7 100755
--- a/win/win32/vs2015/NetHack.vcxproj
+++ b/win/win32/vs2015/NetHack.vcxproj
@@ -1,21 +1,22 @@
-
-
{609BC774-C6F8-4B2B-AA7D-5B3D0EA95751}
Win32Proj
NetHack
-
-
+
+
+
+ $(BinDir)
+
@@ -31,7 +32,6 @@
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;winmm.lib;Winmm.lib;%(AdditionalDependencies)
-
@@ -215,8 +215,11 @@
+
+
+
-
+
@@ -225,4 +228,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/win/win32/vs2015/NetHackW.vcxproj b/win/win32/vs2015/NetHackW.vcxproj
index 51ba95e5b..52403bbf6 100755
--- a/win/win32/vs2015/NetHackW.vcxproj
+++ b/win/win32/vs2015/NetHackW.vcxproj
@@ -14,6 +14,10 @@
+
+ $(BinDir)
+
+
/Gs /Oi- %(AdditionalOptions)
diff --git a/win/win32/vs2015/afterdgncomp.proj b/win/win32/vs2015/afterdgncomp.proj
index 74ed0d96a..7aebee743 100644
--- a/win/win32/vs2015/afterdgncomp.proj
+++ b/win/win32/vs2015/afterdgncomp.proj
@@ -2,9 +2,9 @@
-
+
diff --git a/win/win32/vs2015/afterdlb.proj b/win/win32/vs2015/afterdlb.proj
index a93c8f720..ed68ba33e 100644
--- a/win/win32/vs2015/afterdlb.proj
+++ b/win/win32/vs2015/afterdlb.proj
@@ -2,12 +2,12 @@
-
+
diff --git a/win/win32/vs2015/afterlevcomp.proj b/win/win32/vs2015/afterlevcomp.proj
index 3b8cd4313..924f66cd5 100644
--- a/win/win32/vs2015/afterlevcomp.proj
+++ b/win/win32/vs2015/afterlevcomp.proj
@@ -4,7 +4,7 @@
-
+
diff --git a/win/win32/vs2015/aftermakedefs.proj b/win/win32/vs2015/aftermakedefs.proj
index 4986f8e6c..20adf1b15 100644
--- a/win/win32/vs2015/aftermakedefs.proj
+++ b/win/win32/vs2015/aftermakedefs.proj
@@ -2,19 +2,19 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/win/win32/vs2015/afternethack.proj b/win/win32/vs2015/afternethack.proj
index 4e03f278f..3b769323e 100644
--- a/win/win32/vs2015/afternethack.proj
+++ b/win/win32/vs2015/afternethack.proj
@@ -3,13 +3,13 @@
+ Inputs="$(SysWinntDir)defaults.nh;$(DocDir)Guidebook.txt;$(DatDir)license;$(SysWinntDir)sysconf;$(DocDir)nethack.txt;$(DatDir)symbols;$(WinWin32Dir)record;$(DatDir)opthelp"
+ Outputs="$(BinDir)defaults.nh;$(BinDir)Guidebook.txt;$(BinDir)license;$(BinDir)sysconf;$(BinDir)symbols;$(BinDir)record;$(BinDir)opthelp">
-
+
-
+
diff --git a/win/win32/vs2015/aftertile2bmp.proj b/win/win32/vs2015/aftertile2bmp.proj
index ab37b2e91..28d2b2e39 100644
--- a/win/win32/vs2015/aftertile2bmp.proj
+++ b/win/win32/vs2015/aftertile2bmp.proj
@@ -2,9 +2,9 @@
-
+
diff --git a/win/win32/vs2015/aftertilemap.proj b/win/win32/vs2015/aftertilemap.proj
index f2e710ddf..bfdb48fe9 100644
--- a/win/win32/vs2015/aftertilemap.proj
+++ b/win/win32/vs2015/aftertilemap.proj
@@ -2,9 +2,9 @@
-
+
diff --git a/win/win32/vs2015/afteruudecode.proj b/win/win32/vs2015/afteruudecode.proj
index f871981e0..b33e3c4f4 100644
--- a/win/win32/vs2015/afteruudecode.proj
+++ b/win/win32/vs2015/afteruudecode.proj
@@ -2,18 +2,19 @@
-
-
-
-
-
-
-
-
+ Inputs="$(ToolsDir)uudecode.exe;@(UUFiles)"
+ Outputs="@(IconFiles);@(BmpFiles);@(RecordFiles)">
+
+
+
+
+
+
+
+
+
-
+
diff --git a/win/win32/vs2015/common.props b/win/win32/vs2015/common.props
index 443ebf05f..d39cf4616 100644
--- a/win/win32/vs2015/common.props
+++ b/win/win32/vs2015/common.props
@@ -15,6 +15,7 @@
Console
+ $(SymbolsDir)$(TargetName).pdb
diff --git a/win/win32/vs2015/dirs.props b/win/win32/vs2015/dirs.props
index 2395f2153..8cdcf60c2 100644
--- a/win/win32/vs2015/dirs.props
+++ b/win/win32/vs2015/dirs.props
@@ -2,10 +2,11 @@
$(MSBuildProjectDirectory)\..\..\..\
- $(RootDir)util\
+ $(RootDir)bin\$(Configuration)\$(Platform)\
$(ProjectDir)obj\$(Configuration)\$(Platform)\$(TargetName)\
- $(RootDir)bin\$(Configuration)\$(Platform)\
- $(RootDir)obj\$(Configuration)\$(Platform)\$(TargetName)\
+ $(ProjectDir)symbols\$(Configuration)\$(Platform)\$(TargetName)\
+ $(RootDir)tools\$(Configuration)\$(Platform)\
+ $(RootDir)util\
$(RootDir)dat\
$(RootDir)doc\
$(RootDir)include\
@@ -17,6 +18,7 @@
$(RootDir)win\share\
$(RootDir)win\tty\
$(RootDir)win\win32\
- $(OutDir)
+ $(ToolsDir)
+ $(ObjDir)
\ No newline at end of file
diff --git a/win/win32/vs2015/recover.vcxproj b/win/win32/vs2015/recover.vcxproj
index 5b4626ca4..7abba076f 100755
--- a/win/win32/vs2015/recover.vcxproj
+++ b/win/win32/vs2015/recover.vcxproj
@@ -1,11 +1,9 @@
-
{2F35F228-6733-4FE5-9B46-B3AA10D4BC2E}
-
@@ -13,14 +11,15 @@
-
+
+ $(BinDir)
+
$(IncDir);$(SysWinntDir);%(AdditionalIncludeDirectories)
WIN32CON;DLB;MSWIN_GRAPHICS;%(PreprocessorDefinitions)
-