我通常使用 .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>
就是这样。有什么解决办法吗?我找不到类似的问题和解决方案。 预先感谢!
我相信您应该能够使用
Costura.Fody
,这是对 ILMerge
的简化抽象,将所有内容嵌入到单个 .exe
文件中。
您可以在此处阅读
Costura.Fody
的文档。
但是安装相当简单:
Install-Package Fody
Install-Package Costura.Fody
在项目的根目录中创建一个
FodyWeavers.xml
文件:
<Weavers>
<Costura/>
</Weavers>
然后只需根据文档在您的
FodyWeavers.xml
文件中配置任何额外设置,例如包括运行时引用等。