Visual Studio for Mac中解决方案资源管理器中存在重复的客户端文件

10
使用dotnet cli v2.1.4下载了Spa模板,命令为dotnet new --install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0。然后用dotnet new angular -o my-project创建了一个angular项目。接着打开Visual Studio for Mac并打开cli生成的.csproj文件,解决方案已呈现,但是客户端文件都被复制了,即使在finder或通过ls在目录中只出现了一个文件的副本。我发现了几个相关问题的threads建议卸载该项目等,我尝试了这些解决方案,但遗憾的是问题仍然存在,请参见附图。服务器端文件未被复制。Screenshot of duplicate files

我仍然面临此问题。 - Mohammed Gadi
3个回答

14
问题在于Angular项目文件中定义了重复的None项。与Windows上的Visual Studio不同,Visual Studio for Mac不会隐藏这些重复项。
如果您编辑.csproj文件并添加<None Remove="$(SpaRoot)**" />,则在Visual Studio for Mac的解决方案窗口中将不会显示重复的文件。
<ItemGroup>
  <!-- Don't publish the SPA source files, but do show them in the project files list -->
  <Content Remove="$(SpaRoot)**" />
  <None Remove="$(SpaRoot)**" /> <!-- This has been added -->
  <None Include="$(SpaRoot)**" Exclude="$(SpaRoot)node_modules\**" />
</ItemGroup>

在上面的ItemGroup中,只有位于SpaRoot目录(即ClientApp文件夹)中的Content项目被移除了。

1
我已经在GitHub上为这个问题开了一个issue - https://github.com/aspnet/templating/issues/559 - Matt Ward
1
一个问题在一年前被记录,到2019年8月仍然存在。 - Yini
问题在于修复程序没有被移植到.NET Core 2.1 SDK。 - Matt Ward
我遇到了问题,发生在2020年1月XD。 - Ivan Lopez
Visual Studio 8.5在解决方案窗口中隐藏了重复的文件,因此即使SDK未更新,这个问题也会消失。这个修复程序可能会被回溯到8.4,但现在在8.4中还不可用。对于.NET Core 3存在一个不同的问题,因为它定义了一些带有条件的MSBuild多次,而旧版的VS Mac无法处理。 - Matt Ward

1
我通过将文件夹ClientApp移出项目目录,然后从项目中删除它来解决了这个问题。然后我将其移回并再次包含在项目中,这一次文件不再重复。

1

我在我的.csproj文件中有以下内容,将其删除后问题得到解决:

<ItemGroup>
    <None Include="**/*" />
</ItemGroup>

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