bbradson / Performance-Fish

Performance Mod for RimWorld
Mozilla Public License 2.0
423 stars 34 forks source link

Issue Building from Source - Possibly due to name Captilization of Directory.Build.Props #49

Open AmCh-Q opened 1 month ago

AmCh-Q commented 1 month ago

I got this error message when I try opening the solution: Error Project "[Redacted]\RimWorld\Mods\Performance-Fish\Source\PerformanceFish\Directory.Build.props" was not imported by "[Redacted]\Microsoft Visual Studio\2022\Community\MSBuild\Current\Microsoft.Common.props" at (34,3), due to the file not existing. That then causes errors such as "Attribute 'TargetFramework' not found" and more. I suspect that is due to the file "Performance-Fish/Source/PerformanceFish/Directory.Build.Props" has a capitalized ".Props", and a quick search tells me "Directory.Build.props" is the standard name. Renaming the file cleared those specific errors on my end, but I am also facing other issues building that I want to figure out on my own first, so I cannot say for certain that this would fix the issue. It's a simple change so I didn't make a PR.

Foxtr0t1337 commented 2 weeks ago

Confirmed this fail on Ubuntu 22.04

Basically on Windows, MacOS, and some Linux Docker this is fine. But on some Linux machine this will fail because of case-sensitivity.

Other than that, you will need Fishery repo cloned next to this repo.

  1. Clone THIS repo.
    parallels@ubuntu-linux-22-04-desktop:~/Documents$ git clone https://github.com/bbradson/Performance-Fish.git
    Cloning into 'Performance-Fish'...
    remote: Enumerating objects: 854, done.
    remote: Counting objects: 100% (854/854), done.
    remote: Compressing objects: 100% (501/501), done.
    remote: Total 854 (delta 501), reused 667 (delta 315), pack-reused 0
    Receiving objects: 100% (854/854), 6.24 MiB | 3.89 MiB/s, done.
    Resolving deltas: 100% (501/501), done.

2.Clone the DEPENDENCY repo Fishery.

parallels@ubuntu-linux-22-04-desktop:~/Documents$ git clone https://github.com/bbradson/Fishery.git
Cloning into 'Fishery'...
remote: Enumerating objects: 462, done.
remote: Counting objects: 100% (462/462), done.
remote: Compressing objects: 100% (222/222), done.
remote: Total 462 (delta 241), reused 420 (delta 199), pack-reused 0
Receiving objects: 100% (462/462), 3.01 MiB | 2.30 MiB/s, done.
Resolving deltas: 100% (241/241), done.

3.cd into source directory.

parallels@ubuntu-linux-22-04-desktop:~/Documents$ cd Performance-Fish/Source/PerformanceFish

4.Try to build but FAIL.

parallels@ubuntu-linux-22-04-desktop:~/Documents/Performance-Fish/Source/PerformanceFish$ dotnet build PerformanceFish.sln 
MSBuild version 17.8.5+b5265ef37 for .NET
  Determining projects to restore...
/usr/lib/dotnet/sdk/8.0.105/NuGet.targets(156,5): error : Invalid framework identifier ''. [/home/parallels/Documents/Performance-Fish/Source/PerformanceFish/PerformanceFish.sln]

Build FAILED.

/usr/lib/dotnet/sdk/8.0.105/NuGet.targets(156,5): error : Invalid framework identifier ''. [/home/parallels/Documents/Performance-Fish/Source/PerformanceFish/PerformanceFish.sln]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.45

5.Case-sensitivity.

parallels@ubuntu-linux-22-04-desktop:~/Documents/Performance-Fish/Source/PerformanceFish$ mv Directory.Build.Props Directory.Build.props 

6.Build again.

parallels@ubuntu-linux-22-04-desktop:~/Documents/Performance-Fish/Source/PerformanceFish$ dotnet build PerformanceFish.sln 
MSBuild version 17.8.5+b5265ef37 for .NET
  Determining projects to restore...
  Restored /home/parallels/Documents/Performance-Fish/Source/PerformanceFish/1.5.csproj (in 24.73 sec).
  Restored /home/parallels/Documents/Performance-Fish/Source/PerformanceFish/1.4.csproj (in 24.73 sec).
  1.4 -> /home/parallels/Documents/Performance-Fish/1.4/Assemblies/PerformanceFish.dll
  1.5 -> /home/parallels/Documents/Performance-Fish/1.5/Assemblies/PerformanceFish.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:42.33