Я создаю C# Class Librairy для своего проекта для связи с моей базой данных. Я создаю сервис windows для своего проекта и для установки сервиса windows я создаю проект установки.
Я хотел зашифровать строку подключения, чтобы в projectInstaller моей службы windows я делал это :
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
string directoryPath = Context.Parameters["TARGETDIR"];
string connectionStringSetting = Context.Parameters["DB_CONNECTION"];
string cryptConnectionString = extract.EncryptStr(connectionStringSetting, ConfigurationManager.AppSettings["encryptKeyProject"]);
string xml = directoryPath + "WindowsService1.exe.config";
XmlDocument document = new XmlDocument();
document.Load(xml);
XmlNode connectionStringNode = document.SelectSingleNode("//configuration/connectionStrings/add[@name='DBContext ']");
connectionStringNode.Attributes["connectionString"].Value = cryptConnectionString;
document.Save(xml);
}
И в библиотеке классов (связь с моей базой данных) моего проекта я расшифровываю строку подключения
public class DBContext : DbContext
{
public DBContext ()
{
ExtractLicenseData extract = new ExtractLicenseData();
string encryptConnectionString = ConfigurationManager.ConnectionStrings["DBContext"].ConnectionString.ToString();
string decryptConnectionString = extract.DecryptStr(encryptConnectionString, ConfigurationManager.AppSettings["encryptKeyProject"]);
ConfigurationManager.ConnectionStrings["DBContext"].ConnectionString = decryptConnectionString;
}
}
Проблема заключается в том, когда я пытаюсь установить свой проект, у меня есть это ошибка:
Ошибка 1001: ссылка на строку не установлена для экземпляра строки.
Имя параметра: s
У кого-то есть решение для меня