【问题标题】:dotnet publish project does not contain a project.json filedotnet publish 项目不包含 project.json 文件
【发布时间】:2017-05-18 19:16:05
【问题描述】:

我有一个针对 .Net Framework 4.5.2 的 Dot Net Core 项目,我刚刚将其转换为 .csproj。我正在尝试使用 CLI 发布,但出现以下错误

不包含 project.json 文件

如果我运行 dotnet --info

.NET Command Line Tools (1.0.0-preview2-003131)

Product Information:
  Version:            1.0.0-preview2-003131
  Commit SHA-1 hash:  635cf40e58

Runtime Environment:
  OS Name:     Windows
  OS Version:  10.0.15063
  OS Platform: Windows
  RID:         win10-x64

Microsoft .NET Core Shared Framework Host

 Version  : 2.0.0-preview1-002111-00
 Build    : 1ff021936263d492539399688f46fd3827169983

我认为升级到 csproj 成功了,所以我不再需要 project.json。最终目标是使用 VST 将该项目插入 CI/CD。我发现了这个

Dotnet publish-iis exit with code 1. Project.json not found when using .csproj?

并且没有提到的参考资料,这是我的 csproj 文件

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
     <TargetFramework>net452</TargetFramework>
     <PreserveCompilationContext>true</PreserveCompilationContext>
     <AssemblyName>Pricing.Web</AssemblyName>
     <OutputType>Exe</OutputType>
     <PackageId>Pricing.Web</PackageId>
  </PropertyGroup>
  <ItemGroup>
     <None Include="App.config" />
     <None Update="wwwroot\**\*;EmailTemplates\*;nlog.config">
       <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
     </None>
  </ItemGroup>
  <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.WebApiCompatShim" Version="1.1.2" />
     <PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.1.1" />
     <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.1.1" />
    <PackageReference Include="Webpack" Version="3.0.0" />
    <PackageReference Include="Microsoft.TypeScript.MSBuild" Version="2.2.1" />
    <PackageReference Include="Microsoft.TypeScript.Compiler" Version="2.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.Owin.Security.ActiveDirectory" Version="3.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.1.1" />
    <PackageReference Include="Microsoft.Owin.Security" Version="3.0.1" />
    <PackageReference Include="Microsoft.Owin.Security.Cookies" Version="3.0.1" />
    <PackageReference Include="Microsoft.Owin.Security.OpenIdConnect" Version="3.0.1" />
    <PackageReference Include="Microsoft.AspNet.Identity.Core" Version="2.2.1" />
    <PackageReference Include="EntityFramework" Version="6.1.3" />
    <PackageReference Include="NLog.Extensions.Logging" Version="1.0.0-*" />
    <PackageReference Include="AutoMapper" Version="5.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.1.1" />
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.3.1" />
    <PackageReference Include="Sendgrid" Version="9.1.1" />
 </ItemGroup>
 <ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
 </ItemGroup>
</Project>

我需要在这里做什么?

【问题讨论】:

  • 你有一个旧版本的sdk,你应该从microsoft.com/net/download/core安装最新的1.0/1.1版本
  • 安装好之后,我还需要运行其他东西吗?我仍然从 CLI 收到相同的错误
  • 检查解决方案文件夹中的 global.json 文件是否有错误的 sdk 版本。 global.json 是它如何知道在安装多个 sdk 时使用哪个 sdk
  • 终于可以使用了,谢谢!它在 CLI 中工作,但在 VSTS 中失败?我在那里遇到同样的错误

标签: .net asp.net-core azure-pipelines


【解决方案1】:

使用 Hosted VS 2017 代理或带有最新版本 sdk 的本地构建代理。

注意:Hosted代理中的核心版本是1.0.0-preview2-1-003177版本。

【讨论】:

  • 它是托管的。我需要在源代码管理中使用不同版本的全局 json 吗?
  • @lsaacLevin 没有,你可以参考这篇文章来迁移项目(docs.microsoft.com/en-us/dotnet/articles/core/migration)。另一方面,有 Hosted 代理 Hosted VS 2017 代理,你使用 Hosted VS 2017 代理吗?尝试添加命令行步骤/任务(工具:dotnet;参数:--version)来检查 .net 核心版本。
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多