首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为.NET5或更高版本发布时,不支持在单个文件包中包含符号

为.NET5或更高版本发布时,不支持在单个文件包中包含符号
EN

Stack Overflow用户
提问于 2021-07-21 17:07:17
回答 1查看 120关注 0票数 0

我尝试发布一个.net核心(WinForms)项目,并将其从核心3.0升级到net5.0,作为单个可执行文件。

我得到以下错误:

代码语言:javascript
复制
NETSDK1142: Including symbols in a single file bundle is not supported when publishing for .NET5 or higher.

在搜索NETSDK1142时,我在谷歌上没有得到任何关于修复的结果。

在Core3.0中,以下命令起作用:

代码语言:javascript
复制
dotnet publish nameofproject.csproj \
   -o bin/Release/core \
   -c Release \
   -p:Platform=x64 \
   -r win-x64 \
   --self-contained true

我还尝试了net5.0的以下标志。即使使用DebugSymbols=false,仍然得到相同的错误

代码语言:javascript
复制
dotnet publish nameofproject.csproj \
    -o bin/Release/core \
    -c Release \
    -p:Platform=x64 \
    -p:NoWarn=CS0618 \
    -p:NoWarn=NU1605 \
    --self-contained true \
    -p:PublishSingleFile=true \
    -p:IncludeAllContentForSelfExtract=true \
    -p:PublishReadyToRun=true \
    -p:PublishTrimmed=false \
    -p:IncludeNativeLibrariesForSelfExtract=true \
    /p:DebugType=None /p:DebugSymbols=false
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-21 23:19:52

解决方案

只需将-p:IncludeSymbolsInSingleFile=false/p:IncludeSymbolsInSingleFile=false添加到发布命令即可

我是怎么找到它的

在尝试修复该问题2天后,在dotnet/sdk源代码中找到了解决方案。

sdk/src/Tasks/Common/Resources/Strings.resx中,我找到了错误字符串

代码语言:javascript
复制
  <data name="CannotIncludeSymbolsInSingleFile" xml:space="preserve">
    <value>NETSDK1142: Including symbols in a single file bundle is not supported when publishing for .NET5 or higher.</value>
    <comment>{StrBegin="NETSDK1142: "}</comment>
  </data>

然后,我在源代码中找到了CannotIncludeSymbolsInSingleFile字符串资源,并在sdk/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets中找到了以下结果

代码语言:javascript
复制
<NETSdkError Condition="'$(PublishSingleFile)' == 'true' And
                            '$(IncludeSymbolsInSingleFile)' == 'true' And
                            '$(_TargetFrameworkVersionWithoutV)' >= '5.0' And '$(TargetFrameworkIdentifier)' == '.NETCoreApp'"
                 ResourceName="CannotIncludeSymbolsInSingleFile" />

在那里我找到了我必须在build IncludeSymbolsInSingleFile上设置的标志

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68466834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档