Index: Application/Riskeer/src/Application.Riskeer/App.xaml.cs
===================================================================
diff -u -r8866ca917e4dc8d3f6429ad1c6c7b53aabfd42db -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Application/Riskeer/src/Application.Riskeer/App.xaml.cs (.../App.xaml.cs) (revision 8866ca917e4dc8d3f6429ad1c6c7b53aabfd42db)
+++ Application/Riskeer/src/Application.Riskeer/App.xaml.cs (.../App.xaml.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -22,6 +22,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Windows;
@@ -65,9 +66,7 @@
private static void SetupAssemblyResolver()
{
- string assemblyDirectory = Path.Combine(
- Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName,
- "Application", "Built-in", "Managed");
+ string assemblyDirectory = Path.Combine(GetApplicationDirectory(), "Built-in", "Managed");
Assembly GetAssemblyResolver(object sender, ResolveEventArgs args)
{
@@ -134,5 +133,17 @@
}
}
}
+
+ private static string GetApplicationDirectory()
+ {
+ DirectoryInfo executingAssemblyDirectoryInfo = Directory.GetParent(Assembly.GetExecutingAssembly().Location);
+
+ while (executingAssemblyDirectoryInfo.GetDirectories().All(di => di.Name != "Application"))
+ {
+ executingAssemblyDirectoryInfo = Directory.GetParent(executingAssemblyDirectoryInfo.FullName);
+ }
+
+ return Path.Combine(executingAssemblyDirectoryInfo.FullName, "Application");
+ }
}
}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Assembly/AssemblyResolver.cs
===================================================================
diff -u -r3c64407303b0747af9311ce346df9d8966971956 -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Core/Common/src/Core.Common.Assembly/AssemblyResolver.cs (.../AssemblyResolver.cs) (revision 3c64407303b0747af9311ce346df9d8966971956)
+++ Core/Common/src/Core.Common.Assembly/AssemblyResolver.cs (.../AssemblyResolver.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -22,6 +22,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
namespace Core.Common.Assembly
{
@@ -164,6 +165,22 @@
AppDomain.CurrentDomain.AssemblyResolve -= LoadFileFromAssemblyLookup;
}
+ ///
+ /// Gets the "Application" directory, containing all built-in and standalone assemblies.
+ ///
+ /// The full path to the "Application" directory.
+ public static string GetApplicationDirectory()
+ {
+ DirectoryInfo executingAssemblyDirectoryInfo = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location);
+
+ while (executingAssemblyDirectoryInfo.GetDirectories().All(di => di.Name != "Application"))
+ {
+ executingAssemblyDirectoryInfo = Directory.GetParent(executingAssemblyDirectoryInfo.FullName);
+ }
+
+ return Path.Combine(executingAssemblyDirectoryInfo.FullName, "Application");
+ }
+
private static void InitializeAssemblyLookup(string assemblyDirectory)
{
string[] assemblies = Directory.GetFiles(assemblyDirectory, assemblySearchPattern);
Index: Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj
===================================================================
diff -u -re256c94ccd3f758cf0b4d6dcb4947fce096c5f4e -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj (.../Riskeer.HydraRing.Calculation.csproj) (revision e256c94ccd3f758cf0b4d6dcb4947fce096c5f4e)
+++ Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj (.../Riskeer.HydraRing.Calculation.csproj) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -6,6 +6,7 @@
+
Index: Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs
===================================================================
diff -u -r6e9a55cd2db983034a688865e7f88fddd633326d -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs (.../HydraRingInitializationService.cs) (revision 6e9a55cd2db983034a688865e7f88fddd633326d)
+++ Riskeer/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs (.../HydraRingInitializationService.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -21,8 +21,8 @@
using System;
using System.IO;
-using System.Reflection;
using System.Security;
+using Core.Common.Assembly;
using Riskeer.HydraRing.Calculation.Data;
using Riskeer.HydraRing.Calculation.Data.Input;
using Riskeer.HydraRing.Calculation.Providers;
@@ -84,22 +84,14 @@
TemporaryWorkingDirectory = temporaryWorkingDirectory;
hlcdFilePath = settings.HlcdFilePath;
- string executingAssemblyLocation = Assembly.GetExecutingAssembly().Location;
- string applicationFolder = GetApplicationFolder(Directory.GetParent(executingAssemblyLocation));
+ string applicationFolder = AssemblyResolver.GetApplicationDirectory();
hydraRingDirectory = Path.Combine(applicationFolder, "Standalone", "Deltares", hydraRingBinariesSubDirectory);
configurationDatabaseFilePath = Path.Combine(hydraRingDirectory, HydraRingFileConstants.ConfigurationDatabaseFileName);
preprocessorDirectory = settings.PreprocessorDirectory;
usePreprocessorClosure = settings.UsePreprocessorClosure;
}
- private static string GetApplicationFolder(DirectoryInfo directory)
- {
- return directory.Name.Contains("Application")
- ? directory.FullName
- : GetApplicationFolder(directory.Parent);
- }
-
///
/// Gets the ini file path.
///
Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Integration/HydraRingConfigurationServiceIntegrationTest.cs
===================================================================
diff -u -r09c7d08078031ad607654ebdb9578b40fce094a0 -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Integration/HydraRingConfigurationServiceIntegrationTest.cs (.../HydraRingConfigurationServiceIntegrationTest.cs) (revision 09c7d08078031ad607654ebdb9578b40fce094a0)
+++ Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Integration/HydraRingConfigurationServiceIntegrationTest.cs (.../HydraRingConfigurationServiceIntegrationTest.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -22,7 +22,7 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Reflection;
+using Core.Common.Assembly;
using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.HydraRing.Calculation.Data;
@@ -38,7 +38,7 @@
[TestFixture]
public class HydraRingConfigurationServiceIntegrationTest
{
- private static readonly string hydraRingDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"HydraRing");
+ private static readonly string hydraRingDirectory = Path.Combine(AssemblyResolver.GetApplicationDirectory(), "StandAlone", "Deltares", "HydraRing");
[Test]
public void WriteDatabaseCreationScript_HydraRingConfigurationWithAssessmentLevelCalculationInput_WritesExpectedCreationScript([Values(true, false)] bool runPreprocessor)
Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingConfigurationServiceTest.cs
===================================================================
diff -u -r09c7d08078031ad607654ebdb9578b40fce094a0 -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingConfigurationServiceTest.cs (.../HydraRingConfigurationServiceTest.cs) (revision 09c7d08078031ad607654ebdb9578b40fce094a0)
+++ Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingConfigurationServiceTest.cs (.../HydraRingConfigurationServiceTest.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -22,7 +22,7 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Reflection;
+using Core.Common.Assembly;
using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.HydraRing.Calculation.Data;
@@ -37,7 +37,7 @@
[TestFixture]
public class HydraRingConfigurationServiceTest
{
- private static readonly string hydraRingDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"HydraRing");
+ private static readonly string hydraRingDirectory = Path.Combine(AssemblyResolver.GetApplicationDirectory(), "StandAlone", "Deltares", "HydraRing");
[Test]
public void Constructor_ExpectedValues()
Index: Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingInitializationServiceTest.cs
===================================================================
diff -u -r8298b571305d4c7e99134a5e4bade5181299230f -r104d2d6389e829e9020ec8458c544c1fc5ae273d
--- Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingInitializationServiceTest.cs (.../HydraRingInitializationServiceTest.cs) (revision 8298b571305d4c7e99134a5e4bade5181299230f)
+++ Riskeer/HydraRing/test/Riskeer.HydraRing.Calculation.Test/Services/HydraRingInitializationServiceTest.cs (.../HydraRingInitializationServiceTest.cs) (revision 104d2d6389e829e9020ec8458c544c1fc5ae273d)
@@ -21,7 +21,7 @@
using System;
using System.IO;
-using System.Reflection;
+using Core.Common.Assembly;
using Core.Common.TestUtil;
using NUnit.Framework;
using Riskeer.HydraRing.Calculation.Data;
@@ -33,7 +33,7 @@
[TestFixture]
public class HydraRingInitializationServiceTest
{
- private readonly string hydraRingDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"HydraRing");
+ private static readonly string hydraRingDirectory = Path.Combine(AssemblyResolver.GetApplicationDirectory(), "StandAlone", "Deltares", "HydraRing");
[Test]
public void Constructor_SettingsNull_ThrowsArgumentNullException()