Вам необходимо настроить свойство строки подключения в коде для расшифровки, 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 внутри.