ILMerge:在一个exe,App.Config中组合程序集

时间:2015-02-19 14:51:39

标签: c# c#-4.0 console-application assemblies ilmerge

我正在使用ILMerge将.ddls组合在一个可执行文件中,但是当我运行Output.exe时,它似乎找不到App.Config文件。它返回错误:InvalidOperationException:在应用程序配置文件中找不到连接字符串名称。

我想知道ILMerge是否在Output.exe中包含了App.Config文件。

如何不包含它并确保Output.exe引用它?

我使用了ILMerge GUI - 这并没有让我选择包含除.dlls之外的任何内容 - 我从ConsoleApp中编译的bin / Release文件夹中选择。

这是bin / Debug文件夹中的图像。 ILMerge没有给我包含ConsoleLayer.vshost.exe.config的选项 - 其中包括(基本上)App.Config文件。如何将其包含在内以便Output.exe在运行时知道连接字符串的详细信息?

enter image description here

感谢。

2 个答案:

答案 0 :(得分:3)

默认配置文件为app_name.exe.config。您需要获取所需的配置文件并重命名它以匹配exe文件。 在您的情况下Output.exe.config

答案 1 :(得分:1)

如果您找到了解决方案,这可能会稍晚一些,但是任何带有vshost名称的文件通常都与应用程序中的调试模式相关联。这是您在调试模式下运行的应用程序。因此,当您单击application.exe以运行应用程序时,它不会在文件名中查找任何带有vshost的文件。它会查找application.exe.config。您可以将其关闭以进行调试。

除非您计划将调试文件包含在合并的exe中,否则我认为不需要包含它。它只在调试时有用。

以下是一些可能有用的链接......

google search for disabling vshost

Stackoverflow问答......

what-is-the-purpose-of-vshost-exe-file answered by the famous Jon Skeet

相关问题