произвести (один) выполнимый релиз - PullRequest
2 голосов
/ 23 марта 2012

Я написал небольшое консольное приложение, которое использует s # arp.Я могу создать исполняемый файл, используя менеджер конфигурации и выбрав выпуск.Я понимаю, что dll необходимы, и что, очевидно, нет простого способа «связать» (?) Все в один исполняемый файл:

SO link

* 1006Наименьший способ скрыть:

NHibernate.config

Так что строка подключения БД скрыта?Я помню, что можно зашифровать Web.config для asp.net.Может быть, что-то подобное возможно?

Любая обратная связь будет очень признателен.Большое спасибо заранее.

1 Ответ

3 голосов
/ 23 марта 2012

Вам необходимо настроить свойство строки подключения в коде для расшифровки, SharpArch предоставляет следующую перегрузку, которая позволяет добавлять свойства в вашу конфигурацию:

NHibernateSession.Init(
                sessionStorage,
                new[] { Server.MapPath("~/bin/Suteki.TardisBank.Infrastructure.dll") },
                new AutoPersistenceModelGenerator().Generate(),
                Server.MapPath("~/NHibernate.config"),

                // You can get all the values from your config and use here,
                // if you dont want a config file at all, or just decrypt the 
                // connection string and provide that value dictionary:
                new System.Collections.Generic.Dictionary<string, string>
                    {
                        {
                            NHibernate.Cfg.Environment.ConnectionString, DecryptConnectionString()
                        }
                    }, null);

Где метод Decrypt DecryptConnectionString () получает строку подключения изгде угодно, будь то зашифрованный раздел конфигурации из app.config или жестко закодированная строка.

Как сказал Корбин, для среднего Джо это усложняет определение строки подключения, но это можно сделать,если вы собираетесь распространять это, то я бы посмотрел, чтобы не подключаться к БД напрямую.

Посмотрите в ILMerge, если вы хотите 1 исполняемый файл с dll внутри.

...