【问题标题】:Problem With Publishing a Self Contained EXE (Issue With Nuget)发布自包含 EXE 的问题(Nuget 问题)
【发布时间】:2021-01-12 16:51:36
【问题描述】:

我已经使用 Visual Studio 2019 在 C# 中创建了一个应用程序。当我发布它时,一切正常,但该 exe 文件在文件夹中包含其他 2 个文件。我只想拥有一个可以自行运行的 exe,在其位置没有任何额外文件,因此我尝试了发布设置中的“自包含”选项。但它没有用。我只得到一个“发生错误”的弹出窗口,上面写着:

Publish has encountered an error.
Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. 

A diagnostic log has been written to the following location:
"C:\Users\***\AppData\Local\Temp\tmp4E17.tmp"

在下面的输出框中我得到了这个:

1>Determining projects to restore...
1>Unable to load the service index for source 
https://api.nuget.org/v3/index.json.
1>  An error occurred while sending the request.
1>  The request was aborted: Could not create SSL/TLS secure 
channel.
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped 
==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

现在,我看到人们发布的一些类似问题以及一些可能的修复方法,但对我没有任何帮助。我已在 regedit 中将 TLS 1.3->Client->DisabledByDefault 值更新为 1,但仍然没有解决问题。

我正在使用系统 windows 7(32 位)。我期待任何可能的修复,提前谢谢你。

【问题讨论】:

  • 能否请您与我们分享您使用的 nuget 名称?
  • 关于这个问题的任何更新?请检查我的回答是否能帮助您解决问题?如果我的回答能帮助您解决问题,请不要忘记accept it。如果没有,请让我们知道您的任何疑虑,您将进一步帮助您。

标签: c# visual-studio windows-7 nuget visual-studio-2019


【解决方案1】:

我有同样的问题 - Visual Studio 2019 但 Windows 7 64 位。我无法在 Visual Studio 下使用自包含部署模式进行发布。我没有找到解决方案,但有解决方法。

解决方法

从命令行发布作品。在第一次运行期间,nuget 将被下载到本地缓存,因此在 Visual Studio 下发布之后也可以使用。示例:

dotnet publish ProjectName.csproj /p:PublishProfile=YourPublishProfileName

其他可能的解决方法

使用 Windows 10。我将项目移动到具有相同 Visual Studio 的 PC,但使用 Windows 10。从 Visual Studio 发布没有问题。

【讨论】:

    【解决方案2】:

    首先,请检查问题是否与网络或VS IDE有关。

    请在网站上输入链接https://api.nuget.org/v3/index.json,如果您无法打开网站,我认为问题与您的互联网有关,您应该检查您的互联网并确保没有其他东西破坏它。

    如果不是,我认为问题与 VS IDE 有关。您应该尝试以下步骤:

    1)扩展程序-->管理扩展程序下禁用任何第三方与已安装的扩展程序,以检查是否有扩展程序导致该问题。

    2) clean all nuget caches first 或者直接删除C:\Users\xxx(current user)\.nuget\packages下的所有缓存文件

    3) 仅启用 nuget.org nuget 包源并禁用其他包源。

    输入工具-->选项-->Nuget包管理器-->包源

    取消选中其他包源,只保留nuget.org

    此外,您还可以将nuget.org包源更改为http://packages.nuget.org/v1/FeedService.svc/https://nuget.org/api/v2/,以测试它是否可以rereore nuget包。

    4)关闭VS,删除C:\Users\xxx(current user)\AppData\Roaming\NuGet下的全局nuget.config文件。然后,重启你的VS重新生成文件,再次测试。

    5) 在 CMD 下运行这些(以 Administrator 身份运行)

    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
    reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32
    

    6) repair VS 或更新到最新版本

    【讨论】:

    • 我和 OP 有同样的问题。 Nuget 恢复每天都运行良好。问题仅在 发布 期间以选项 self-contained 作为部署模式可见。运行时 .NET Core 3.1 和 .NET 5。
    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 2018-04-02
    • 1970-01-01
    • 2023-04-11
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    相关资源
    最近更新 更多