diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-11-26 16:26:36 -0500 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-11-26 16:26:36 -0500 |
commit | 2e40ad7ad3d83970969b160eae87fc9aa4608916 (patch) | |
tree | d54928b7fc3ddf3f7054c3eff9b2b1653dd13f07 /src | |
parent | 2154b6de95bc97e3412b0800d3e2809bd2a1e544 (diff) | |
download | SMAPI-2e40ad7ad3d83970969b160eae87fc9aa4608916.tar.gz SMAPI-2e40ad7ad3d83970969b160eae87fc9aa4608916.tar.bz2 SMAPI-2e40ad7ad3d83970969b160eae87fc9aa4608916.zip |
copy pdb/mdb files to assembly cache (#166)
Diffstat (limited to 'src')
-rw-r--r-- | src/StardewModdingAPI/Framework/ModAssemblyLoader.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/StardewModdingAPI/Framework/ModAssemblyLoader.cs b/src/StardewModdingAPI/Framework/ModAssemblyLoader.cs index 4e59bb08..264d1ff2 100644 --- a/src/StardewModdingAPI/Framework/ModAssemblyLoader.cs +++ b/src/StardewModdingAPI/Framework/ModAssemblyLoader.cs @@ -43,6 +43,8 @@ namespace StardewModdingAPI.Framework public void ProcessAssembly(string assemblyPath) { // read assembly data + string assemblyFileName = Path.GetFileName(assemblyPath); + string assemblyDir = Path.GetDirectoryName(assemblyPath); byte[] assemblyBytes = File.ReadAllBytes(assemblyPath); byte[] hash = MD5.Create().ComputeHash(assemblyBytes); @@ -53,7 +55,7 @@ namespace StardewModdingAPI.Framework // process assembly if not cached if (!canUseCache) { - this.Monitor.Log($"Preprocessing new assembly {assemblyPath}..."); + this.Monitor.Log($"Preprocessing new assembly {assemblyFileName}..."); // read assembly definition AssemblyDefinition assembly; @@ -66,11 +68,21 @@ namespace StardewModdingAPI.Framework // write cache using (MemoryStream outStream = new MemoryStream()) { + // get assembly bytes assembly.Write(outStream); byte[] outBytes = outStream.ToArray(); + + // write assembly data Directory.CreateDirectory(cachePaths.Directory); File.WriteAllBytes(cachePaths.Assembly, outBytes); File.WriteAllBytes(cachePaths.Hash, hash); + + // copy any mdb/pdb files + foreach (string path in Directory.GetFiles(assemblyDir, "*.mdb").Concat(Directory.GetFiles(assemblyDir, "*.pdb"))) + { + string filename = Path.GetFileName(path); + File.Copy(path, Path.Combine(cachePaths.Directory, filename), overwrite: true); + } } } } |