生成(一)发布可执行文件

时间:2012-03-23 09:41:45

标签: visual-studio nhibernate s#arp-architecture

我编写了一个使用s#arp的小型控制台应用程序。我可以 使用配置管理器创建可执行文件并选择 发布。我知道dll是必需的,而且存在 显然没有简单的方法将所有内容“绑定”(?)到一个可执行文件中:

SO link

至少有一种方法可以隐藏:

NHibernate.config

这样db的连接字符串是隐藏的吗?我记得是的 可以为asp.net加密Web.config。也许类似的东西 可能的?

非常感谢任何反馈。非常感谢提前。

1 个答案:

答案 0 :(得分:3)

您需要在代码中配置连接字符串属性才能解密,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);

解密方法DecryptConnectionString()从任何地方获取连接字符串,无论是app.config中的加密配置部分还是硬编码字符串。

正如Corbin所说,这使得普通的Joe更难以找出连接字符串,但是可以这样做,如果您要分发它,那么我会考虑不直接连接到数据库。

如果你想要一个带有dll的可执行文件,请查看ILMerge。