C# ILMerge:将程序集合并到一个exe App.Config中
我使用ILMerge将.ddl合并到一个可执行文件中,但是当我运行Output.exe时,它似乎找不到App.Config文件。它返回错误:InvalidOperationException:在应用程序配置文件中找不到连接字符串名称 我想知道ILMerge是否在Output.exe中包含App.Config文件 我如何才能不包括它,并确保Output.exe正在引用它 我使用了ILMerge GUI—这并没有给我包含除.dll之外的任何内容的选项—我从ConsoleApplication编译到的bin/Release文件夹中选择了.dll 下面是bin/Debug文件夹中的图像。ILMerge没有给我包含ConsoleLayer.vshost.exe.config的选项,它包含(基本上)App.config文件。如何使它包含它,以便Output.exe在运行时知道连接字符串的详细信息C# ILMerge:将程序集合并到一个exe App.Config中,c#,c#-4.0,console-application,assemblies,ilmerge,C#,C# 4.0,Console Application,Assemblies,Ilmerge,我使用ILMerge将.ddl合并到一个可执行文件中,但是当我运行Output.exe时,它似乎找不到App.Config文件。它返回错误:InvalidOperationException:在应用程序配置文件中找不到连接字符串名称 我想知道ILMerge是否在Output.exe中包含App.Config文件 我如何才能不包括它,并确保Output.exe正在引用它 我使用了ILMerge GUI—这并没有给我包含除.dll之外的任何内容的选项—我从ConsoleApplication编译到的
谢谢 默认配置文件是
app\u name.exe.config
。您需要获取所需的配置文件并将其重命名以匹配exe文件。
在您的情况下,
Output.exe.config
默认配置文件是app\u name.exe.config
。您需要获取所需的配置文件并将其重命名以匹配exe文件。
在您的情况下,
Output.exe.config
如果您已经找到了解决方案,那么这可能有点晚了,但是任何名称为vshost的文件通常都与应用程序中的调试模式相关联。这是您在调试模式下运行的应用程序。因此,当您单击application.exe运行应用程序时,它不会查找文件名中包含vshost的任何文件。它将查找application.exe.config。您可以关闭此选项进行调试
除非您计划在合并的exe中包含调试文件,否则我认为没有必要包含它。它只在调试时有用
以下是一些可能有帮助的链接
问题和答案
如果您已经找到了解决方案,那么这可能有点晚了,但是任何名称为vshost的文件通常都与应用程序中的调试模式相关联。这是您在调试模式下运行的应用程序。因此,当您单击application.exe运行应用程序时,它不会查找文件名中包含vshost的任何文件。它将查找application.exe.config。您可以关闭此选项进行调试 除非您计划在合并的exe中包含调试文件,否则我认为没有必要包含它。它只在调试时有用 以下是一些可能有帮助的链接 问题和答案
是否要将ConsoleLayer.vshost.exe.config文件(上面带有红线的文件)复制到Output.exe.config所在的目录并重命名?或者你的意思是从VisualStudio中的项目本身获取它?保存数据层(EntityFramework)的程序集的App.Config呢?我也需要用什么名称复制它吗?假设你的应用程序可以通过执行
ConsoleLayer.exe
来运行,你可以复制ConsoleLayer.exe.Config
(你的应用程序使用的配置文件),然后将其重命名为Output.exe.Config
。谢谢,这将上述错误更改为一个新错误-这是一个进步。它现在抱怨无法加载文件或程序集“实体框架”。这可能与Packages.config有关吗?我试图复制它并将其重命名为packages.exe.config,但这没有帮助。你知道吗?你的意思是把ConsoleLayer.vshost.exe.config文件(上面有一条红线的文件)复制到Output.exe.config所在的目录并重命名它吗?或者你的意思是从VisualStudio中的项目本身获取它?保存数据层(EntityFramework)的程序集的App.Config呢?我也需要用什么名称复制它吗?假设你的应用程序可以通过执行ConsoleLayer.exe
来运行,你可以复制ConsoleLayer.exe.Config
(你的应用程序使用的配置文件),然后将其重命名为Output.exe.Config
。谢谢,这将上述错误更改为一个新错误-这是一个进步。它现在抱怨无法加载文件或程序集“实体框架”。这可能与Packages.config有关吗?我试图复制它并将其重命名为packages.exe.config,但这没有帮助。我想知道,你知道吗?