static ApplicationPartManagerExtensions() { //we use the default file provider, since the DI isn't initialized yet _fileProvider = CommonHelper.DefaultFileProvider; _baseAppLibraries = new List <string>(); //get all libraries from /bin/{version}/ directory _baseAppLibraries.AddRange(_fileProvider.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll") .Select(fileName => _fileProvider.GetFileName(fileName))); //get all libraries from base site directory if (!AppDomain.CurrentDomain.BaseDirectory.Equals(Environment.CurrentDirectory, StringComparison.InvariantCultureIgnoreCase)) { _baseAppLibraries.AddRange(_fileProvider.GetFiles(Environment.CurrentDirectory, "*.dll") .Select(fileName => _fileProvider.GetFileName(fileName))); } //get all libraries from refs directory string refsPathName = _fileProvider.Combine(Environment.CurrentDirectory, VerivoxPluginDefaults.RefsPathName); if (_fileProvider.DirectoryExists(refsPathName)) { _baseAppLibraries.AddRange(_fileProvider.GetFiles(refsPathName, "*.dll") .Select(fileName => _fileProvider.GetFileName(fileName))); } }
/// <summary> /// Save plugin descriptor to the plugin description file /// </summary> public virtual void Save() { IVerivoxFileProvider fileProvider = EngineContext.Current.Resolve <IVerivoxFileProvider>(); //get the description file path if (OriginalAssemblyFile == null) { throw new Exception($"Cannot load original assembly path for {SystemName} plugin."); } string filePath = fileProvider.Combine(fileProvider.GetDirectoryName(OriginalAssemblyFile), VerivoxPluginDefaults.DescriptionFileName); if (!fileProvider.FileExists(filePath)) { throw new Exception($"Description file for {SystemName} plugin does not exist. {filePath}"); } //save the file string text = JsonConvert.SerializeObject(this, Formatting.Indented); fileProvider.WriteAllText(filePath, text, Encoding.UTF8); }