【问题标题】:Resource file "**/*.resx" cannot be found. (MSB3552) on VS for Mac找不到资源文件“**/*.resx”。 (MSB3552) 在 VS for Mac 上
【发布时间】:2018-01-18 07:25:07
【问题描述】:

我们无法在 vs for Mac 版本上构建解决方案,但相同的解决方案可以在 vs for windows(vs 2017)上构建,并且有效。

如何解决这个问题?并且可以同时支持(与 Windows 和 Mac 相比)

谢谢。

/Library/Frameworks/Mono.framework/Versions/5.0.1/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets

【问题讨论】:

  • 在尝试从 VSCode 调试运行后刚刚体验到这一点,将所有更改恢复为已构建的版本,现在即使失败并出现相同的错误,非常烦人,proly 将不得不重新安装 .NET核心 SDK 和运行时。删除 bin、obj 和干净的重建对我没有帮助。
  • 构建时可以分享错误异常吗?
  • 嗨@Uthen,我已经解决了这个问题。我遇到的情况是预期的,但花了我一段时间。发生的事情是我的代码正在以更深的路径复制项目结构内的 .csproj 文件。我的代码中有一些路径解析错误,在第一次运行时运行良好。在第二次构建中,包含了新创建的 csproj,但在手动检查项目文件夹之前,我并没有意识到这一点。删除额外的 .csproj 和新文件夹结构并修复路径生成代码修复了此问题。所以看到这个错误一定是文件路径错误。

标签: visual-studio xamarin mono .net-core visual-studio-mac


【解决方案1】:

检查 Finder,就我而言,问题出在路径上:

【讨论】:

    【解决方案2】:

    “dotnet run”命令在我每次运行该命令时都会创建一个不必要的密钥文件。我不得不删除此文件夹以使其再次工作。这是由于使用 Windows 样式路径(如“C:\SharedDataProtectionKeys”)而不是适用于 Windows 和 Linux 环境的相对路径引起的

    【讨论】:

      【解决方案3】:

      在 Mac 上的项目子树中有一个奇怪的文件夹。就我而言,它是 c\/output/。

      删除该文件夹,构建将成功。

      然后修复开发人员使用 Windows 特定路径分隔符 ('\') 而不是 Path.DirectorySeparatorChar 的代码部分。

      【讨论】:

        【解决方案4】:

        还有另一种可能性。在 Windows (10) 和 VS 2017 移动并重命名结帐时有经验 (svn)。可能是因为有一些损坏的符号链接。

        有什么帮助:复制结帐而不是移动它,不要点击任何符号链接。

        【讨论】:

          【解决方案5】:

          在 macOS 中,您可以创建一个包含斜杠或反斜杠的文件夹。

          macOS 示例上的问题代码:

          var path = Path.Combine(HostingEnvironment.ContentRootPath, "UploadedAttachments\Answer");
          
          if (!Directory.Exists(path))
          {
              Directory.CreateDirectory(path);
          }
          

          【讨论】:

          • 几年前我在下面发了同样的帖子:) 是的,困难时期
          【解决方案6】:

          我不确定您是否遇到与我相同的问题。我有一个在 Windows 上运行的 .NET Core 项目,但是当我尝试在 macOS 上运行该项目时,我收到了错误消息:

          错误 MSB3552:找不到资源文件“**/*.resx”。

          在我的项目中,我有一个将日志文件存储在文件夹中的配置

          "WriteTo": [
            {
              "Name": "RollingFileAlternate",
              "Args": {
                "logDirectory": ".\\Logs",
                "fileSizeLimitBytes": 10485760
              }
            }
          ]
          

          我第一次运行项目时,这将创建一个名为 Logs 的文件夹,但是当我在 macOS 上运行时,它将创建一个名为 .\Logs 的隐藏文件夹。所以这是一个问题,因为之后项目在构建时会出现该错误。

          解决方案是将配置更改为:

           "WriteTo": [
            {
              "Name": "RollingFileAlternate",
              "Args": {
                "logDirectory": "Logs",
                "fileSizeLimitBytes": 10485760
              }
            }
          ]
          

          现在,该项目可以在 macOS 上运行了。

          由于 Windows 在目录路径中使用反斜杠,而 macOS 使用斜杠,当您需要在 Windows 中为 macOS 构建项目时,您应该检查所有与文件、文件夹和路径相关的代码(例如,代码创建用于保存日志文件的文件夹,创建用于保存上传文件的文件夹等)。

          【讨论】:

            【解决方案7】:

            我们删除了 obj 和 bin 但不起作用 我们删除了所有使用“\”创建的文件,但该项目不起作用。 最后,我们从 git 中提取项目并再次构建,它可以工作 (注意:从 git 克隆项目时,我们不做新的提交)

            我认为它可能发生在缓存或类似情况

            【讨论】:

              【解决方案8】:

              我在 osx 上运行 dotnet core 并且遇到了同样的问题。 问题是我使用 Windows 路径生成了一个文件夹。 在磁盘上创建时,由于其命名为 \Uploads,它在 Finder 中不可见。执行ls -la 并查看其中是否有任何奇怪的文件夹或文件。 See Image

              【讨论】:

              • 在 mac 上也是如此。我对带有 Windows 斜杠的文件夹也有一个奇怪的引用。
              • 这也是我的问题。在我的工作目录中的 mac 上创建 C:\ProgramData\SomeFolder
              • 刚刚在 Ubuntu 上发生过这种情况。感谢您的提示!
              • 当您处理文件上传或下载并存储在代码中的 windows 位置时会出现此问题,而这在 mac 中不起作用...
              • 在 linux 上也发生在我身上,帮助我找到了罪魁祸首,谢谢
              【解决方案9】:

              有同样的错误;认为这必须是由于阅读这些答案后使用反斜杠的路径。

              我在 .csproj 文件中删除了使用 \ 引用文件的行,但无济于事。

              我花了一段时间才找到它,但我注意到 something 创建了一个wwwroot\ImageCache 目录。我删除了这个目录并且构建工作正常。

              【讨论】:

                【解决方案10】:

                验证在您的项目文件结构中您没有生成任何新文件,并且在我的场景中您没有创建任何新的 .csproj、.vbproj 或 .fsproj 文件(可能嵌套在某个深处)。深层文件路径也可能导致此非详细问题。确保不要将东西嵌套得太深。

                【讨论】:

                  【解决方案11】:

                  我试图解决这个问题像两个月一样,终于找到了问题所在。我在 Windows 样式路径的项目文件中有反斜杠“\”,但我使用的是 Mac,所以它正在创建具有纯名称“wwwroot\test”(未嵌套)的目录。如果我删除该文件夹,它会成功构建。

                  【讨论】:

                    【解决方案12】:

                    我今天在 VS for Mac 上进行了测试(上次更新),只是删除了我的解决方案中的一些源代码并重新构建了所有项目,令人难以置信的是它的工作和我的问题得到了解决。

                    【讨论】:

                      【解决方案13】:

                      这里也有同样的问题。简单的清洁对我不起作用。我最终删除了 bin 和 obj 文件夹。之后,恢复软件包,一切都很好。可能是包缓存问题。

                      【讨论】:

                        【解决方案14】:

                        今天晚上我遇到了同样的事情,并且我得到了它的工作。我最终只是做了一个干净和一个构建,它工作得很好。

                        不过,我确实将项目复制到了 U 盘上,并且我没有使用 Github 之类的东西来传输项目。我猜它在 bin/obj 目录中有一些来自 Windows 上 VS 的残留物。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2016-04-09
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多