C# 在没有app.config的情况下运行.NET 2.0 4.0计算机?

C# 在没有app.config的情况下运行.NET 2.0 4.0计算机?,c#,.net,vb.net,C#,.net,Vb.net,我正在构建一个主要针对Windows10的应用程序,但我也希望包括一些对XP+的遗留支持 我知道,通过配置带有“startup useLegacyV2RuntimeActivationPolicy”标记的app.config文件,这是可能的。 但是,我不想包含依赖项,因为这要求我要么有一个提取这两个文件的安装程序,要么必须将应用程序作为归档文件发布。 这两个选项都是合理的,但如果可能的话,我希望它是一个漂亮、干净、完全可移植的、打包在一个可执行应用程序中的 说到打包,这让我想到了选项C。我知道我

我正在构建一个主要针对Windows10的应用程序,但我也希望包括一些对XP+的遗留支持

我知道,通过配置带有“startup useLegacyV2RuntimeActivationPolicy”标记的app.config文件,这是可能的。 但是,我不想包含依赖项,因为这要求我要么有一个提取这两个文件的安装程序,要么必须将应用程序作为归档文件发布。 这两个选项都是合理的,但如果可能的话,我希望它是一个漂亮、干净、完全可移植的、打包在一个可执行应用程序中的

说到打包,这让我想到了选项C。我知道我不能简单地将这个app.config文件添加为嵌入式资源,并且让LegacyV2Runtime标记仍然处于活动状态(或者我可以,谁知道呢,我只是假设它不起作用)。因此,假设这是在窗口之外,我之前回忆起一个应用程序,它能够将所有Dll文件打包到可执行文件中,并且运行得非常好。我不相信它是ILSpy,因为我认为它与本机代码一起工作。我正在努力找到这个应用程序,但假设我找到了它,windows可能会识别app.config文件吗


如果这不起作用,那么我想我的下一个首选途径是创建一个安装程序可执行文件。我唯一的语言是.NET和一些java,所以我不确定哪种语言最适合在支持XP Win 10的环境中创建它。有什么建议吗?谢谢

我的建议是迫使人们停止使用XP。它们只不过是病毒机器,应该升级到受支持的软件。我用一种最好的方式说,ILMerge可以用来将DLL合并在一起或合并到一个EXE中,但那是因为它们都是程序集,因此它们的IL代码可以合并。app.config文件是一个XML文件,因此它是非常不同的。为了提取资源,你的应用程序必须已经在运行,在这种情况下就太晚了。为什么不简单地构建两个版本的应用程序?设定一个p并不难[roject property或two并从菜单中选择Build。好的,感谢输入人员。出于好奇,我绝对不会对这个程序执行此操作,更重要的是,因为这一直是我想尝试的事情,要将所有.NET dll合并到应用程序中需要做些什么?我相信您使用的是Mono,但我不确定会发生什么因为我以前从来没有真正玩过mono。如果你排除了早已过时的Windows XP/Vista,那么.NET Core 3.x支持WinForms/WPF应用程序的单文件部署,甚至不再需要.NET Framework。@LexLi,请注意WinForms还没有.NET Core设计器,我也不认为WPF。