我刚刚将.net core 2.0项目升级到2.2。据我所知,我没有更改任何其他设置,但是现在当我发布到我的文件系统时,它会发布大量以前没有的文件夹和dll。
我需要发布它们吗?如果没有,我可以抑制它们的输出吗?
答案 0 :(得分:1)
简介:此问题似乎是由.net core 2.0引起的。
从上面分享的图片中获取。我知道您选择框架依赖模式。
在此模式下,生成的文件应与picture1中的文件类似。而且,如果您选择自包含模式,则生成的文件应该与picture2中的文件类似。
但是在.net core2.0中,似乎有些不同。当我们在.net core2.0中发布项目,或像您一样从2.0升级时。我们必须将自包含属性显式设置为false,以便框架依赖模式可以正常工作。
我需要发布它们吗?
否,选择框架相关模式时,您无需以自包含模式发布生成的文件。
如果没有,我可以抑制它们的输出吗?
这是一种解决方法:
看起来像您使用VS IDE进行发布,发布时请确保选择“创建配置文件”。因此,我们将拥有一个PublishProfile,可以在“解决方案”窗口中的“属性”下找到它。打开FolderProfile.pubxml并将<PublishWithAspNetCoreTargetManifest>true</PublishWithAspNetCoreTargetManifest>
添加到PropertyGroup
中。另外,我们可以将<DeleteExistingFiles>false</DeleteExistingFiles>
设置为true。
之后,再次发布项目即可解决问题。
PublishProfiles的最终格式如下:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<publishUrl>bin\Release\netcoreapp2.2\publish\</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PublishWithAspNetCoreTargetManifest>true</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
</Project>
此外:您可以从this issue中找到更多信息。感谢natemcmaster。他的建议确实对我有用。