gpt4 book ai didi

asp.net-core - dotnet 发布在开发计算机上成功,构建代理失败,asp.net Netcoreapp2.1/win-x64

转载 作者:行者123 更新时间:2023-12-01 22:57:50 25 4
gpt4 key购买 nike

在“托管 VS2017”和自托管构建代理 (Windows Server 2012 R2) 上,使用指定的发布配置文件运行 dotnetpublish 失败,并显示:

C:\Program Files\dotnet\sdk\2.1.502\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error NETSDK1047: Assets file 'C:\agent_work\11\s\\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.1/win-x64'. Ensure that restore has run and that you have included 'netcoreapp2.1' in the TargetFrameworks for your project. You may also need to include 'win-x64' in your project's RuntimeIdentifiers.

在本地开发服务器(Win10、VS2017、许多不同的 .net sdk 版本)上,当我使用完全相同的命令行进行 dotnet 发布时,一切都运行良好。

我已经尝试了一切,从更新 VS2017、安装我们目标的确切版本的 .net core SDK 和运行时、更新构建代理、Windows 更新......似乎没有任何帮助。我不明白为什么它有不同的行为。

发布配置文件是一个文件系统配置文件,并指定了以下两个元素:

<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>

命令行如下所示:“C:\Program Files\dotnet\dotnet.exe”发布“C:\agent\_work\11\s\Source\TheProject.csproj”--no-build - c Release -f netcoreapp2.1/p:PublishProfile="发布版本到 Filesystem.pubxml"-o C:\agent\_work\11\a\Website -v d

有人知道我可以做些什么来让它工作吗?

最佳答案

事实证明,这都是关于运行时标识符的。之所以出现这种困惑,是因为我认为从 dotnet-cli 构建和发布与从 Visual Studio 构建和发布一样简单。 Visual Studio 的发布正在通过其发布进行完整恢复/构建,并且发布配置文件具有 <RuntimeIdentifier>设置。

我做错了几件事。我没有包括 -r win-x64到恢复和构建任务,我正在使用 dotnet publish --no-build 。这就是一种不匹配的来源。接下来是我正在运行dotnet test构建之后和发布之前。这消除了一些发布所需的东西,但不确定是什么。

我改变了dotnet test包括-p:RuntimeIdentifier=winx64因为显然它使用 -r 来报告输出(显然他们在 2.2 中添加了 -runtime)。

我在这个过程中学到的一些东西,dotnet-cli 确实不能很好地处理 .sln 文件,至少在构建代理中是这样。看来文件锁和共享进程有很大的问题。尝试优化构建任务以最大程度地减少 dotnet-cli 的工作是一件令人头疼的事情。

关于asp.net-core - dotnet 发布在开发计算机上成功,构建代理失败,asp.net Netcoreapp2.1/win-x64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53798615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com