如何在 .NET Core 项目中更改 `wwwroot` 文件夹的图标?

14
在Visual Studio 2017中,如果我想使用以下任意一种标准的.NET Core项目模板之一从头开始创建ASP.NET Core Web应用程序:
  • 控制台应用程序(.NET Core)
  • 类库(.NET Core)
这些项目模板显然不包括wwwroot文件夹。因此,当我将该文件夹添加到我的项目中时,它看起来和行为像一个标准文件夹:

.NET Core Console App

使用 ASP.NET Core Web Application 项目模板创建时,wwwroot 文件夹的样子如下:

ASP.NET Core Web Application

问题 - 外观(图标)
如何将wwwroot文件夹的图标更改为ASP.NET Core Web Application项目模板中的图标?请注意保留HTML标签。

附加问题 - 行为(将文件复制到输出目录)
在标准的.NET Core项目中,我需要将以下内容添加到我的.csproj文件中:

<ItemGroup>
  <Content Include="wwwroot\**" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

所以它可以复制所有我的文件从“wwwroot”文件夹到输出目录,类似于ASP.NET Core Web应用程序项目。我查看了ASP.NET Core Web应用程序的“.csproj”文件,并没有看到类似的内容。 我假设主要问题的答案也将提供此问题的答案,因为项目模板显然不同。 我似乎找不到在线资源来帮助我手动编辑这个问题。 预先感谢您。

很可能这是VS的一个特性,当项目类型为Web项目时显示特殊图标。并不是每个愿望都能实现。 - Lex Li
@LexLi - 我觉得如果你不能通过编辑项目配置手动将项目模板转换为其他模板,那就很奇怪了。 - Svek
VS不是一个具有所有可能性的开源编辑器。到目前为止,图标部分没有明显的文档。 - Lex Li
根据这份文档,我认为 <Project Sdk="Microsoft.NET.Sdk.Web"> 可能是不同之处。https://blogs.msdn.microsoft.com/webdev/2017/03/07/announcing-visual-studio-2017/ - Svek
3个回答

19

阅读了这个页面,宣布了 Visual Studio 2017 中的新工具,我发现这是可能的。

我注意到 ASP.NET Core Web 应用程序项目在 .csproj 文件的 Project 节点下使用了不同的值。

<Project Sdk="Microsoft.NET.Sdk.Web">

标准项目模板使用Microsoft.NET.Sdk,例如:

<Project Sdk="Microsoft.NET.Sdk"> ← ← ← ← //change this to Microsoft.NET.Sdk.Web

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

</Project>

更改csproj文件里的值为Microsoft.NET.Sdk.Web并保存后,项目会自动升级且wwwroot文件夹会被添加到我的项目中(但是被排除),就像这样:

Step1

接下来我将其包含在项目中,现在看起来是这样的:

Step2

太好了!我希望这个答案能帮助其他人。


3
这个方法确实对我有用,但我的Sdk设置已经是"Microsoft.NET.Sdk.Web"。我删除了".Web",保存了文件,然后再次添加并保存了文件。图标恢复了,文件夹也移动到了正确的位置(位于Properties文件夹之后,而以前按字母顺序排列)。同时,我不必手动包含这个文件夹 - 在这个过程中它没有被排除。 - JTennessen
1
我不小心删除了wwwroot文件夹。我重新创建了它,但是它没有图标。然后我关闭了vs.net并重新打开,一切都恢复正常了。 :) - David

2
请确保此行代码被包含在下面的ItemGroup中。
 <Folder Include="wwwroot\" />

它自动地将这个节点添加到我的csproj文件中: <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> - Eric Milliot-Martinez

-1

我也遇到了同样的问题,但最好不要称之为问题,因为带图标的wwwroot文件夹和不带图标的没什么区别。你需要首先找到你的项目文件yourproject.csproj,在这个文件中有一些标签,顶部你会看到<Project Sdk="Microsoft.NET.Sdk">,尝试重新赋值为<Project Sdk="Microsoft.NET.Sdk.web">,然后尝试删除不寻常的wwwroot文件夹,并且重新生成该文件夹并将其命名为wwwroot,这次它将具有你喜欢的图标。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接