我正在使用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在运行时知道连接字符串的详细信息?
感谢。
答案 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