private void BuildHub(string deviceSasKey) { var currentLocation = Path.GetDirectoryName(Assembly.GetCallingAssembly().Location); if (_inContainer) { currentLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); } Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevServerCertificateFile, Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.ca.pem")); Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevServerPrivateKeyFile, Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.pem")); Environment.SetEnvironmentVariable(HubService.Constants.ConfigKey.EdgeHubDevTrustBundleFile, Path.Combine(currentLocation, @"Certificates/edge-hub-dev/edge-hub-server.ca.pem")); Environment.SetEnvironmentVariable("AuthenticationMode", "Cloud"); var storageFolder = Path.Combine(currentLocation, @"Storage"); var hubStorageFolder = Path.Combine(storageFolder, HubService.Constants.EdgeHubStorageFolder); if (!Directory.Exists(hubStorageFolder)) { Directory.CreateDirectory(hubStorageFolder); } Environment.SetEnvironmentVariable("storageFolder", storageFolder); var csBuilder = IotHubConnectionStringBuilder.Create(_iotHubConnectionString); var edgeConnectionString = new ModuleConnectionStringBuilder(csBuilder.HostName, _deviceId) .Create(Devices.Edge.Agent.Core.Constants.EdgeHubModuleIdentityName) .WithSharedAccessKey(deviceSasKey) .Build(); Environment.SetEnvironmentVariable(Devices.Edge.Agent.Core.Constants.EdgeHubConnectionStringKey, edgeConnectionString); Environment.SetEnvironmentVariable(Devices.Edge.Agent.Core.Constants.IotHubConnectionStringKey, edgeConnectionString); var edgeHubConfiguration = new ConfigurationBuilder() .AddJsonFile("appSettings.json", true) .AddEnvironmentVariables() .Build(); _hub._Init(edgeHubConfiguration, _container); }