public static string TryFindLicenseText()
{
var appConfigLicenseString = ConfigurationManager.AppSettings["NServiceBus/License"];
if (!string.IsNullOrEmpty(appConfigLicenseString))
{
Logger.Info("Using embedded license supplied via config file AppSettings/NServiceBus/License.");
return appConfigLicenseString;
}
var appConfigLicenseFile = ConfigurationManager.AppSettings["NServiceBus/LicensePath"];
if (!string.IsNullOrEmpty(appConfigLicenseFile))
{
if (File.Exists(appConfigLicenseFile))
{
Logger.InfoFormat("Using license supplied via config file AppSettings/NServiceBus/LicensePath ({0}).", appConfigLicenseFile);
return NonLockingFileReader.ReadAllTextWithoutLocking(appConfigLicenseFile);
}
//TODO: should we throw if file does not exist?
throw new Exception($"You have a configured licensing via AppConfigLicenseFile to use the file at '{appConfigLicenseFile}'. However this file does not exist. Either place a valid license at this location or remove the app setting.");
}
var localLicenseFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"NServiceBus\License.xml");
if (File.Exists(localLicenseFile))
{
Logger.InfoFormat("Using license in current folder ({0}).", localLicenseFile);
return NonLockingFileReader.ReadAllTextWithoutLocking(localLicenseFile);
}
var oldLocalLicenseFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"License\License.xml");
if (File.Exists(oldLocalLicenseFile))
{
Logger.InfoFormat("Using license in current folder ({0}).", oldLocalLicenseFile);
return NonLockingFileReader.ReadAllTextWithoutLocking(oldLocalLicenseFile);
}
var registryLicense = LoadLicenseFromRegistry();
if (!string.IsNullOrEmpty(registryLicense))
{
return registryLicense;
}
registryLicense = LoadLicenseFromPreviousRegistryLocation("4.3");
if (!string.IsNullOrEmpty(registryLicense))
{
return registryLicense;
}
registryLicense = LoadLicenseFromPreviousRegistryLocation("4.2");
if (!string.IsNullOrEmpty(registryLicense))
{
return registryLicense;
}
registryLicense = LoadLicenseFromPreviousRegistryLocation("4.1");
if (!string.IsNullOrEmpty(registryLicense))
{
return registryLicense;
}
registryLicense = LoadLicenseFromPreviousRegistryLocation("4.0");
if (!string.IsNullOrEmpty(registryLicense))
{
return registryLicense;
}
return null;
}