以下对我有用。
将以下行添加到 PropertyGroup 部分的 .csproj 文件中:
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
接下来在与项目文件相同的目录中创建一个名为 runtimeconfig.template.json 的文件,其中包含:
{
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
}
我使用了 dotnet publish 命令,它在我提供给 dotnet publish 命令的输出目录中创建了一个 [YourAppNameHere].runtimeconfig.json 文件。
对于我的 asp.net 项目,发布导致以下 [YourAppNameHere].runtimeconfig.json 文件:
{
"runtimeOptions": {
"tfm": "net6.0",
"includedFrameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "6.0.1"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "6.0.1"
}
],
"configProperties": {
"System.Drawing.EnableUnixSupport": true,
"System.GC.Server": true,
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
这有效,但尝试遵循问题中链接到的页面上的文档却没有。我认为这是因为我在 runtimeconfig.template.json 文件中添加了“runtimeOptions”部分,但 dotnet publish 命令还添加了一个名为“runtimeOptions”的部分,这似乎阻止了运行时看到“System. Drawing.EnableUnixSupport”选项。
出于这个原因,我在 runtimeconfig.template.json 文件中排除了“runTimeOptions”部分,因为发布导致以下文件不起作用:
{
"runtimeOptions": {
"tfm": "net6.0",
"includedFrameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "6.0.1"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "6.0.1"
}
],
"runtimeOptions": {
"configProperties": {
"System.Drawing.EnableUnixSupport": true
}
},
"configProperties": {
"System.GC.Server": true,
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
请注意嵌套的“runtimeOptions”,我认为在尝试遵循问题链接中的文档时会导致它失败。