VS2017发布Core Web Api定位完整框架

时间:2017-09-06 07:25:44

标签: asp.net-core msbuild visual-studio-2017

发布.Net Core Web Api项目,( Framework Depended Deployment

  1. 如果我定位Full Framework即net456,则会在net462

    下的bin\Release文件夹中发布所有框架DLL

    WebApp.csproj

     
      <PropertyGroup>
        <TargetFramework>net462</TargetFramework>
      </PropertyGroup>
    
  2. enter image description here

    2.如果我定位Core 1.1即netcoreapp1.1,这将仅在netcoreapp1.1

    下的bin\Release文件夹中发布应用程序DLL
    WebApp.csproj
    
      <PropertyGroup>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>
    

    enter image description here

    这种行为的原因是什么?

1 个答案:

答案 0 :(得分:1)

您可能正在查找错误的文件夹,发布的输出应该在bin\Release\netcoreapp1.1\publish

正常的构建输出不包含dll,因为.NET Core可以从全局NuGet包缓存中查找引用的DLL。 .runtimeconfig.json将在您的计算机上指定此缓存的位置,因此不需要为每个构建复制DLL。

但是,.NET Framework没有这个逻辑,所以需要将DLL复制到构建输出。

此外,在.NET Core 2.0中,您将用于ASP.NET Core应用程序的大多数NuGet包都是.NET Core 2.0中包含的运行时包存储的一部分,因此您只会发布不属于它的程序集这家商店。 由于此存储不适用于.NET Framework,因此此机制不能用于.NET Framework应用程序,并且所有程序集都是已发布输出的一部分。