- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
发布命令工作正常,但运行后,我必须恢复项目,因为缺少包......
所以如果我运行以下命令:
dotnet publish --runtime win-x64
然后发布就可以了,但是之后我的项目中缺少软件包。
但是如果我在没有运行时的情况下运行发布:
dotnet publish
然后发布工作正常,我没有丢失任何包。
这是正常行为吗?我可以做什么来解决这个问题?这很烦人。
这是我的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup">
<Version>3.3.6</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.App">
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.StaticFiles">
<Version>2.1.1</Version>
</PackageReference>
<PackageReference Include="NSwag.AspNetCore">
<Version>12.0.13</Version>
</PackageReference>
<PackageReference Include="NSwag.MSBuild">
<Version>12.0.13</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyProject.Analytics\MyProject.Analytics.csproj" />
<ProjectReference Include="..\MyProject.ApiClient\MyProject.ApiClient.csproj" />
<ProjectReference Include="..\MyProject.CommonApi\MyProject.CommonApi.csproj" />
<ProjectReference Include="..\MyProject.Common\MyProject.Common.csproj" />
<ProjectReference Include="..\MyProject.DbAccess\MyProject.DbAccess.csproj" />
<ProjectReference Include="..\MyProject.Logging\MyProject.Logging.csproj" />
<ProjectReference Include="..\MyProject.Messaging\MyProject.Messaging.csproj" />
<ProjectReference Include="..\MyProject.Model\MyProject.Model.csproj" />
<ProjectReference Include="..\MyProject.Settings\MyProject.Settings.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.Api.Development.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="appsettings.Api.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="appsettings.Api.Production.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include=".ebextensions\never-sleep-again.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="appsettings.Api.PreProduction.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="MyProjectlogs\Development" />
</ItemGroup>
<ItemGroup>
<ProjectCapability Include="SourceItemsFromImports" />
</ItemGroup>
<Target Name="NSwag" AfterTargets="Build">
<Copy SourceFiles="@(Reference)" DestinationFolder="$(OutDir)References" />
<Exec Command="$(NSwagExe_Core21) run nswag.json /variables" />
<RemoveDir Directories="$(OutDir)References" />
</Target>
编辑:从恢复 nugets 日志中,我得到了我发布的项目的每个依赖项的以下信息
@ Project 'MyProject.Api' is affected (InstallCount = 0)
所以它实际上认为有些东西是不同的,但似乎没有安装任何东西。
最佳答案
四处挖掘,我发现this post .
有趣的部分是:
restore and build can be run implicitly as part of another command,like publish. When run implicitly as part of another command, they areprovided with additional context so that the right artifacts areproduced. When you publish with a runtime (for example, dotnet publish-r linux-x64), the implicit restore restores packages for the linux-x64 runtime. If you call restore explicitly, it does not restoreruntime packages by default, because it doesn't have that context.
基本上,运行时 .netcore 2.1.1 与恢复版本 2.1.X (X != 1) 之间不匹配。
解决方案(在上面的链接中进行了解释)是将其添加到项目文件中:
<PropertyGroup>
...
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
关于asp.net-core - 成功发布 dotnet 后软件包丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775338/
我在 Ubuntu v16.04 上安装了 dotent core。问题是当我尝试使用 dotnet user-secrets 时它说:未找到匹配命令“dotnet-user-secrets”的可执行
好。这似乎是我看到答案时会面对的问题类型。 所以... 为什么要打扰 dotnet build做之前dotnet publish ? build自动执行 restore .凉爽的。 好像publish
我正在尝试创建一个 dotnet 新模板的 NuGet 包。我创建了一个 nuspec 文件来设置包的详细信息,它位于我的内容文件夹旁边,其中包含我想要打包的所有内容: My.
我正在尝试使用'dotnet dev-certs'工具导出https证书以包含在Docker镜像中。现在我正在使用: dotnet dev-certs https -v -ep $(HOME)\.as
我昨天从 .Net 5 更新到 .Net 6,现在我的项目无法从 dotnet run 开始。然后我得到错误: Building... warn: Microsoft.AspNetCore.Serve
我使用 dockerfile 成功构建,但是当我尝试从构建镜像运行新容器时,出现以下错误: 我必须为解决方案做什么? Error : /bin/sh: 1: [dotnet,: not found d
我有一个引用其他几个项目的 .NET Core 3 项目。我的主根项目有一个 Release-X构建配置,但其他项目只有 Release配置,无匹配 Release-X配置。 当我尝试使用这个发布我的
我的 dotnet new 列表中有许多“孤立的”dotnet 模板。 它们不再存在于我的驱动器上,因为我删除了文件夹,所以我不能 dotnet new --uninstall。 有没有办法从列表中删
编辑: 以下是最初与标题一起发布的前一个问题 xunit show ITestOutputHelper output when run in the console 经过调查(见评论),这个问题仍然非
来自 docs.microsoft.com: dotnet build - Builds a project and all of its dependencies. dotnet run - Run
我有一个 Dotnet 核心项目,我试图在其中安装 Microsoft.EntityFrameworkCore.Tools.Dotnet 以使用迁移。我在 Mac 上,所以我使用 MySql.Data
我已经在这个问题上徘徊了很长一段时间,但仍然没有找到答案,也没有其他帖子处理同样的问题。 我已经发布了一个 .net 5.0 网站,如果我在同一个发布的文件夹中运行 dotnet,一切都会正常运行。在
我正在尝试使用 CLI dotnet 命令复制以下 Azure 管道: - task: DotNetCoreCLI@2 inputs: command: publish publi
假设这个文件夹结构 SampleApp global.json Src Web pro
我正在使用dotnet watch命令来运行asp.net core项目。但是,默认情况下,它选择 Production 作为环境。 我已经尝试了这两个选项: 1) > dotnet watch AS
我正在尝试在 Linux 主机上的官方 Microsoft/dotnet 镜像之外的容器中构建一个 dotnet 项目,因为该镜像与 Windows 和 Linux 都兼容。我只有 linux 主机,
我不是 Linux 用户,所以这可能是一个简单的修复,但我已经尝试了以下方法: 首先我使用命令 curl -sSL https://dot.net/v1/dotnet-install.sh | bas
我在发布配置文件中遇到了 Visual Studio 和 EF 迁移的奇怪情况。鉴于: Visual Studio 2019 v16.4 .NET 核心项目。目标 .NET Core 3.1 EF 3
我已经安装了 .NET Core 1.0.1 以与 VS 2015 Update 3 一起使用,并且以管理员身份运行(在 Windows 8.1 x64 上)。 如果我创建任何 .NET Core 项
我正在尝试为dotnet core 2创建开发Dockerfile。到目前为止,我的工作是: FROM microsoft/aspnetcore-build:2.0 VOLUME /app WORKD
我是一名优秀的程序员,十分优秀!