Index: Core/Common/test/Core.Common.TestUtil/TestHelper.cs =================================================================== diff -u -rce7954637ac9917d51039d8a1c718b9cd5a6d490 -r9cf5887aa60bb1af2455e3482948dc803a060b19 --- Core/Common/test/Core.Common.TestUtil/TestHelper.cs (.../TestHelper.cs) (revision ce7954637ac9917d51039d8a1c718b9cd5a6d490) +++ Core/Common/test/Core.Common.TestUtil/TestHelper.cs (.../TestHelper.cs) (revision 9cf5887aa60bb1af2455e3482948dc803a060b19) @@ -44,12 +44,26 @@ /// public static class TestHelper { - public static string SolutionRoot + /// + /// Gets a full path to the directory that contains the solution file. + /// + public static string SolutionRoot => Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\")); + + /// + /// Returns a full path to the application directory, which contains all assemblies that are required for running + /// the application. + /// + /// A full path to the application directory. + public static string GetApplicationDirectory() { - get + DirectoryInfo rootDirectoryInfo = Directory.GetParent(Assembly.GetExecutingAssembly().Location); + + while (rootDirectoryInfo.GetDirectories().All(di => di.Name != "Application")) { - return Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\..\")); + rootDirectoryInfo = Directory.GetParent(rootDirectoryInfo.FullName); } + + return Path.Combine(rootDirectoryInfo.FullName, "Application"); } ///