C# VS2020 .Net 4.8 Winform 应用程序在没有 .exe.config 文件的情况下运行

问题描述 投票:0回答:1

我通常使用 .Net 4.7 和 VS2020 制作 C# 应用程序。 现在,我将其更改为 .Net 4.8,所有 .exe 和 .dll 文件都会获取 .config 文件。

使用.Net 4.7,此配置文件不需要运行应用程序。我只是将 .exe 和 .dll 文件复制到文件夹中,然后就可以了。 现在这个带有 .Net 4.8 和 Net Core 6 的新应用程序,如果没有这些 .config 文件,我将无法运行应用程序。

好吧,NetCore 6 是另一个故事,只是对于 .Net 4.8,我如何摆脱这个 .config 文件来为客户端部署我的应用程序? 我不使用任何安装程序,此应用程序仅供内部使用,只需将所有文件复制到文件夹即可。

我只是检查这个 .config 文件包含什么 -

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

这是我的应用程序 exe 文件,下一个是 dll。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
    </startup>
</configuration>

就是这样。有什么解决办法吗?我找不到类似的问题和解决方案。 预先感谢!

c# config
1个回答
0
投票

我相信您应该能够使用

Costura.Fody
,这是对
ILMerge
的简化抽象,将所有内容嵌入到单个
.exe
文件中。

您可以在此处阅读

Costura.Fody
的文档。

但是安装相当简单:

Install-Package Fody
Install-Package Costura.Fody 

在项目的根目录中创建一个

FodyWeavers.xml
文件:

<Weavers>
   <Costura/>
</Weavers>

然后只需根据文档在您的

FodyWeavers.xml
文件中配置任何额外设置,例如包括运行时引用等。

© www.soinside.com 2019 - 2024. All rights reserved.