[英]DLL missing from 'self-contained' core deployment (asp net)
我的印象是獨立的核心部署附帶了構建/發布所需的一切,但我已將發布文件夾的內容發送到目標環境,但出現以下錯誤:
未找到應用程序依賴項清單中指定的程序集:包:'Microsoft.AspNet'WebApi.Client',版本:'5.2.6' 路徑:'lib/netstandard2.0/System.Net.Http.Formatting.dll'
我已經嘗試將以下屬性添加到項目 XML 中,但在發布目錄中仍然看不到該 DLL:
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
為了清楚起見,我已經嘗試從發布目錄和 winx64 目錄(我很驚訝地發現它的大小要小得多?)
我知道這里的解決方案之一可能是確保我在目標環境上安裝框架/依賴項,但我真的想避免這樣做,因為我希望這個應用程序真正獨立。
項目 XML:
發布設置:
我相信這個問題只與使用Microsoft.AspNetCore.App
元包有關。
使用 Microsoft.AspNetCore.App 元包時,引用的 ASP.NET Core NuGet 包中的任何資產都不會隨應用程序一起部署 - ASP.NET Core 共享框架包含這些資產。
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.2
它不發布任何瞬態依賴項。 但是,如果您將 NuGet 包Microsoft.AspNet.WebApi.Client
直接添加到您的項目中,它應該可以正常工作。
讓我給你舉個簡單的例子。 我正在使用 Visual Studio 2019 並將創建簡單的控制台應用程序。
示例 1
我剛剛創建了一個新的控制台應用程序。 項目文件看起來像這樣。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App" />
<!-- This is a metapackage ^^^ -->
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\PublishProfiles\" />
</ItemGroup>
</Project>
當我發布項目時,輸出目錄如下所示:
示例 2
然后我通過添加對 NuGet 包Microsoft.AspNet.WebApi.Client
的引用來更新項目。 現在項目文件多了一行:
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<!-- Direct reference to the package ^^^ -->
<PackageReference Include="Microsoft.NETCore.App" />
</ItemGroup>
包含Microsoft.AspNet.WebApi.Client
包的瞬態依賴項。
我希望它會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.