Yarn 导致 MSB3552 找不到资源文件“**/*.resx”

问题描述 投票:0回答:2

在我们的 ClientApp (ReactJS) 上运行

yarn start
yarn build
后,我们遇到了一个奇怪的问题。

我们有一个 ASP.NET Core 3.1 项目,上面运行着 React 中的 SPA。当我们运行yarn start时,它会导致dotnet项目中断,并导致错误:

MSB3552 找不到资源文件“**/*.resx”

MSB4018“GenerateResource”任务意外失败。

在 Visual Studio (2019) 中,项目如下所示:

Visual studio error

这会导致构建失败。我无法弄清楚文件已更改(git 未检测到更改)并导致了此问题。

我注意到从命令行运行 dotnet build 时仍然可以工作。

我发现了类似的问题,人们在使用 macOS 时报告了此问题,并且项目文件包含 Windows 路径。我已经检查了项目和解决方案文件,但找不到这样的绝对路径。 在多台计算机(所有 Windows 10 + Visual Studio 2019)上进行了测试,并且都给出了相同的问题。 React 应用程序也在 MacO 上进行编辑,但我们无法识别任何与路径相关的问题。

有人知道是什么原因造成的吗?

更新: 我注意到,当我从 ClientApp 文件夹中删除 node_modules 文件夹时,它会再次在 Visual Studio 中运行。然而,当再次运行yarn时,问题再次出现。

asp.net-core yarnpkg
2个回答
5
投票

通过排除项目中的 ClientApp 文件夹解决了问题。

相关问题:https://github.com/dotnet/sdk/issues/8659

编辑cs项目文件并添加以下内容:

<PropertyGroup>
    <DefaultItemExcludes>node_modules/**;$(DefaultItemExcludes)</DefaultItemExcludes>
</PropertyGroup>

<ItemGroup>
    <Compile Remove="ClientApp\**" />
    <Content Remove="ClientApp\**" />
    <EmbeddedResource Remove="ClientApp\**" />
    <None Remove="ClientApp\**" />
</ItemGroup>

0
投票

当我们的 .NET 应用程序托管 SPA(由任何包管理器安装,例如 npm、pnpm、yarn)时,我也遇到了同样的问题。 VS 试图构建我们的解决方案,但问题是

node_modules
以及 VS 的所有已安装内容在解析其文件系统路径时都存在问题。因此,要么将其排除在 .NET 解决方案/项目中以进行构建,要么删除
node_modules
以构建后端解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.