我正在嘗試創建一個獨立的 .NET Core 6.0 二進制檔案,并將所有依賴項打包在一個.exe檔案中。
我遇到的麻煩是,雖然二進制編譯正常,但它依賴于 Release/Debug 檔案夾中的 DLL。
我試過從命令列編譯
dotnet publish --standalone
但在那種情況下,我只是在加載更多 DLL 時遇到了類似的問題,并且二進制檔案本身的大小相同,需要在該檔案夾中才能運行。
我正在尋找的東西是否可能,如果可以,如何實作?到目前為止,我已經嘗試過使用 Visual Studio、dotnetcli 和 Rider。
有許多舊的解決方案提到了解決方案,ilmerge但是這似乎早已被棄用并且不再維護。
- 為未來的我編輯:
最終解決方案看起來像這樣,這要感謝安德魯在下面的回答。
我的最終 project.csproj 檔案基于MS Docs看起來像這樣
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishSingleFile>true</PublishSingleFile>
<EnableCompressionInSingleFile>true</EnableCompressionInSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
通過 Visual Studio GUI 發布或:
dotnet publish -c release -r win-x64
uj5u.com熱心網友回復:
我建議查看https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file應該是最新的。我相信關鍵位<PublishSingleFile>true</PublishSingleFile>在 .csproj 中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425690.html
上一篇:在C#中鏈接多載的建構式
下一篇:試圖理解為什么這個執行溢位
