当我在Visual Studio中以App
模式构建Release
时,它将在Release文件夹中生成以下文件:
App.exe
App.dll
App.runtimeconfig.json
App.pdb
App.deps.json
App.runtimeconfig.dev.json
如果我从硬盘上的其他位置取出前三个文件,然后双击App.exe
,它将启动;如果删除App.runtimeconfig.json
,则不会!
我只想将App.exe
和App.dll
保留在我的文件夹中,该怎么做才能摆脱该App.runtimeconfig.json
?
编辑
这是App.runtimeconfig.json
的内容:
{
"runtimeOptions": {
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "3.0.0"
}
}
}
编辑
这是我现在在App.csproj
文件的PropertyGroup
中所保存的内容:
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<PublishTrimmed>true</PublishTrimmed>
<PublishReadyToRun>true</PublishReadyToRun>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<UseWPF>true</UseWPF>
</PropertyGroup>
现在我在Visual Studio的Error List
中得到了这个
Error NETSDK1047 Assets file 'C:\Users\Emon\source\repos\SocketTest\App\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v3.0/win-x64'. Ensure that restore has run and that you have included 'netcoreapp3.0' in the TargetFrameworks for your project. You may also need to include 'win-x64' in your project's RuntimeIdentifiers. App C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 234
当我右键单击Project时,我看到:Build,Clean,Rebuild等,没有还原!
编辑
我首先删除了bin
和obj
文件夹,并对<PropertyGroup>
进行了重新排序,将<RuntimeIdentifier>
放在<TargetFramework>
下,现在可以了! / p>
答案 0 :(得分:1)
如您所见,App.runtimeconfig.json
包含运行时信息和使用的.NET Core版本,您不能简单地将其删除。但是在发布应用程序时,您可以通过选择Self-contained
部署模式切换到自包含部署
.NET Core引入了修剪结果可执行文件以减小大小的功能。基本上,您需要在项目文件中提供以下属性
<PublishTrimmed>true</PublishTrimmed>
<PublishReadyToRun>true</PublishReadyToRun>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
There是一篇很好的文章