Asp.net core VS2017发布针对完整框架的核心Web Api
发布.Net核心Web Api项目(Asp.net core VS2017发布针对完整框架的核心Web Api,asp.net-core,msbuild,visual-studio-2017,Asp.net Core,Msbuild,Visual Studio 2017,发布.Net核心Web Api项目(依赖于框架的部署) 如果我的目标是Full Frameworkie net456,这将在net462文件夹下的bin\Release WebApp.csproj WebApp.csproj net462 2.如果我的目标是Core1.1ie netcoreapp1.1,这将仅发布netcoreapp1.1文件夹下bin\Release WebApp.csproj netcoreapp1.1 这种行为的原因是什么 您可能正在查找错误的文件夹,发布
依赖于框架的部署
)
Full Framework
ie net456,这将在net462
文件夹下的bin\Release
WebApp.csproj
WebApp.csproj
net462
Core1.1
ie netcoreapp1.1,这将仅发布netcoreapp1.1
文件夹下bin\Release
WebApp.csproj
netcoreapp1.1
这种行为的原因是什么 您可能正在查找错误的文件夹,发布的输出应位于
bin\Release\netcoreapp1.1\publish
中
正常生成输出不包含DLL,因为.NET Core可以从全局NuGet packages缓存中查找引用的DLL。.runtimeconfig.json
将指定此缓存在您的计算机上的位置,因此无需为每个生成复制DLL
但是.NET Framework没有此逻辑,因此需要将DLL复制到生成输出
此外,在.NET Core 2.0中,您将用于ASP.NET Core应用程序的大多数NuGet包都是.NET Core 2.0中包含的运行时包存储的一部分,因此您将只发布不属于此存储的程序集。
由于此存储不可用于.NET Framework,因此此机制不能用于.NET Framework应用程序,并且所有程序集都是已发布输出的一部分。您知道为什么它会这样设计吗,因为在FDD中,我希望发布文件夹中只包含project DLL。顺便说一句,VS2017不会在
Release\[framework]
yes下生成发布文件夹,而VS2017会在Release
下使用其他PublishOutput
文件夹或类似文件夹。发布结果包括能够运行的项目的完全依赖项关闭。这意味着包含了不属于运行时和运行时存储的所有内容。