2015-09-04 76 views
0

我发现在Machine.config中可以添加连接字符串,以便在每个正在运行的应用程序配置文件中不需要连接字符串。这一点是你有许多框架版本* 2的machine.config文件。所以对于版本4. *你只有2个。这花了我的研究发现,你可以在machine.config如何为机器范围内的连接字符串设置一个位置?

<connectionStrings configSource="Config\connectionStrings.config" /> 

不过的ConnectionString元素使用configSource属性外部化连接字符串,人们意识到,在配置源必须在其中的一个子文件夹machine.config文件位于。那么如何在机器范围内存储所有连接字符串?

+0

可以说,我有5个应用程序。我创建了5个安装。为什么我需要处理一个常见的连接字符串位置,如果我只是可以在一个文件夹中拥有所有内容?然后,当我卸载时,我卸载一个文件夹 - 一个应用程序,一个连接字符串。无需担心我删除了也可用于其他4个应用程序的字符串。 –

+0

那么你不会在5个app.config中的每一个中都有该连接字符串。我们有30个Web应用程序,每个都在他们自己的应用程序池中我们希望它们都连接到同一个数据库,并且取决于它所在的机器,可能是一个不同的数据库。所以我们必须保留30个不同web.config中的每一个的不同版本。 – dko

+0

可能你太年轻了,无法记住叫做“DLL-HELL”的东西。很久以前,有一种想法认为共享组件是件好事。然后,开发人员意识到事实并非如此。因此,每个应用程序都有自己的配置,它自己的一组DLL(大部分时间)。所以你有30个应用程序使用相同的连接字符串 - 这是打包软件的工作,为他们提供适当的Web配置或任何其他。 –

回答

1

我找不到在互联网上有答案的任何地方。所以我会在经过一些实验后自己回答这个问题。

  1. 创建一个位置并将您的connectionstrings.config文件放在那里。防爆。 C:\ Test \ Connectionstrings.config
    1. 在每个machine.config位置中。例如C:\ Windows \ Microsoft.net \ Framework64 \ v4。* \ Config。做步骤3和4
    2. 打开命令提示符作为管理员的位置,然后运行命令:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config>mklink /D Config C:\Test
    3. 编辑的machine.config是<connectionStrings configSource="Config\connectionStrings.config" />

现在你有一个位置所有的连接字符串。