.net core 如何使用VS 2019构建net core 3.0应用程序

.net core 如何使用VS 2019构建net core 3.0应用程序,.net-core,.net Core,我想用NETCore3编译一个.net项目,希望它能在最新的Ubuntu上运行 我已经下载了VS2019和net core 3 SDK,并在Tools/Options/Environment/Preview features中启用了预览功能 我创建了一个新项目(默认为NETCore3.0),添加了一些源文件,并尝试构建它 我犯了以下错误: 1>------ Build started: Project: BaseCampApi, Configuration: Debug Any C

我想用NETCore3编译一个.net项目,希望它能在最新的Ubuntu上运行

我已经下载了VS2019和net core 3 SDK,并在Tools/Options/Environment/Preview features中启用了预览功能

我创建了一个新项目(默认为NETCore3.0),添加了一些源文件,并尝试构建它

我犯了以下错误:

    1>------ Build started: Project: BaseCampApi, Configuration: Debug Any CPU ------
    1>C:\Program Files\dotnet\sdk\3.0.100-preview5-011568\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(157,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview
    1>c:\dev\BaseCampApi\BaseCampApi\BasecampApi.cs(18,17,18,27): error CS0234: The type or namespace name 'AspNetCore' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
    1>c:\dev\BaseCampApi\BaseCampApi\BasecampApi.cs(303,17,303,49): error CS0246: The type or namespace name 'FileExtensionContentTypeProvider' could not be found (are you missing a using directive or an assembly reference?)
    1>Done building project "BaseCampApi.csproj" -- FAILED.
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我该怎么做才能将其编译?

是否恢复了所有依赖项

如果您正在使用终端或仅通过VS执行Nuget restore,请尝试运行
dotnet restore
,然后运行
dotnet build

如果没有帮助,您必须从
.csproj
文件中删除一些工件,然后恢复依赖项。寻找类似于:

<ItemGroup>
  <Reference Include="Microsoft.AspNetCore.Mvc.Core">
    <HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.core\2.0.0\lib\netstandard2.0\Microsoft.AspNetCore.Mvc.Core.dll</HintPath>
  </Reference>
</ItemGroup>

C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.core\2.0.0\lib\netstandard2.0\microsoft.aspnetcore.mvc.core.dll
通过使用Nuget还原,将其删除并重新引用

此外,请确保您实际上是在ASP.NET项目中,而不是在控制台项目中。您的项目称为“*Api”,在一般情况下,这意味着它实际上是一个ASP.NET项目,但您永远不知道


评论后编辑:


所以,事实证明您毕竟有一个控制台应用程序,并且您正在引用来自ASP.NET的数据包。创建一个新的ASP.NET Web应用程序并将代码移动到那里,或者包含框架数据包(如果您非常需要这些数据包,并且考虑到手头的任务,这些数据包实际上是兼容的)。不过,最有可能的是,控制台应用程序应该有一个替代方案,因此您应该使用它们来替代它们。

您创建了什么样的项目?似乎您正试图将aspnet源代码编译为一个dotnet项目,但缺少对aspnet sdk的引用。这是一个控制台应用程序,不涉及ASP。@NikkiLocke,那么,您希望发生什么?您在控制台应用程序中有对AspNetCore的引用。创建一个新的ASP.NET核心Web应用程序并将代码放在那里。“API”听起来很像ASP.NET。此外,关于缺少“AspNetCore”命名空间的错误表明您确实尝试编译aspnet core api,而不是控制台应用程序。My bad-我引用Microsoft.AspNetCore.StaticFiles进行MIME类型转换。如果您想将您的评论重新表述为答案,我将接受。引用是Microsoft.AspNetCore.StaticFiles,以便使用FileExtensionContentTypeProvider从文件扩展名获取mime类型。欢迎其他建议。@NikkiLocke.NET的解决方案是
System.Web.MimeMapping.GetMimeMapping
。但是,对于.NETCore,我想您可以使用以下内容:,因为它基于.NET标准。