2017-08-30 63 views
2

當Visual Studio使用Empty模板創建一個ASP.NET Core 2.0項目時,它會自動引用一個依賴於所有東西(我能想到的每個ASP.NET相關包)的Microsoft.AspNetCore.All包。在我看來,它擊敗了ASP.NET Core的核心優勢(模塊化)。無需Microsoft.AspNetCore.All軟件包即可創建ASP.NET Core 2.0項目嗎?

我可以讓Visual Studio在每個項目中都不包含這個包嗎?

+0

只需卸下參考元包... – DavidG

+0

一旦你刪除Microsoft.AspNetCore.All你可能需要添加Microsoft.AspNetCore和Microsoft.AspNetCore.Mvc – borisdj

+0

@DavidG它已經被安裝並且佔用空間在我的硬盤上......在當前狀態下刪除它是沒有意義的,因爲它會被重新下載,並且r每次創建項目時都會安裝。 – user2286759

回答

2

正如DavidG指出的,Microsoft.AspNetCore.All軟件包只是一個元軟件包。是的,它引用了所有包含ASP.NET Core 2.xEntity Framework Core 2.x的軟件包。,是的,這意味着它是巨大的。但是,除非您考慮應用程序的運行時部分,否則這些軟件包不會與您的應用程序一起部署。

介紹.All元軟件包的原因之一是減少項目文件中的混亂,並且完成了很好的工作。現在你仍然會在你的deps.json文件中獲得大量的依賴關係,除非你按照下面所述進行修剪,但是dll本身不包含在內。

這裏有幾個很好的資源:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage

https://github.com/dotnet/standard/blob/release/2.0.0/Microsoft.Packaging.Tools.Trimming/docs/trimming.md

https://andrewlock.net/the-microsoft-aspnetcore-all-metapackage-is-huge-and-thats-awesome-thanks-to-the-net-core-runtime-store-2/ - 因爲它引用第一個預覽版,但它仍然適用年紀大一點的。

希望有所幫助。

1

建立在pcdev的答案,其中包含很好的參考您目前可閱讀關於此主題。

爲簡單起見,請執行此操作以啓用封裝修剪。

在cs.proj文件中添加以下條目:

  • 的PropertyGroup:TrimUnusedDependencies,真正
  • PackageReference:Microsoft.Packaging.Tools.Trimming

<PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers> 
    <TrimUnusedDependencies>true</TrimUnusedDependencies> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.Packaging.Tools.Trimming" Version="1.1.0-preview1-25818-01" /> 
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" /> 
    </ItemGroup> 
</Project> 

有了這個解決方案,你仍然可以參考Microsoft.AspNetCore.All包年齡,但實現更小的佔地面積。

在我來說,我做自我包含的部署(不使用運行時包店,.NET的核心組件的計算機範圍安裝)

我建立我的應用程序CLI命令:

"C:\Program Files\dotnet\dotnet.exe" publish --configuration Release -r win10-x64 --self-contained 

Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core 
Copyright (C) Microsoft Corporation. All rights reserved. 

    Trimmed 191 out of 405 files for a savings of 31.62 MB 
    Final app size is 59.5 MB 
    [projectName] -> [path]\bin\Release\netcoreapp2.0\win10-x64\[projectName].dll 
    Trimmed 191 out of 405 files for a savings of 31.62 MB 
    Final app size is 59.5 MB 
    [projectName]-> [path]\bin\Release\netcoreapp2.0\win10-x64\publish\ 
相關問題