stride3d / stride

Stride Game Engine (formerly Xenko)
https://stride3d.net
MIT License
6.32k stars 917 forks source link

Stride doesn't start #2329

Open mgbdevp opened 1 week ago

mgbdevp commented 1 week ago

here is the screenshot: image

note: i have installed .NET SDK 8.0 and Visual C++ 2015-2019 Redistributable 14.22, didn't installed Visual Studio, do i need Visual Studio for use Stride?

IXLLEGACYIXL commented 1 week ago
  1. run dotnet --list-sdks => needs to contain net8
  2. restart your pc
MeharDT commented 1 week ago

Visual Studio 2022 is needed to use Stride, I think you can get away with just Build Tools 2022 if you don't want to install VS proper.

IXLLEGACYIXL commented 1 week ago

Visual Studio 2022 is needed to use Stride, I think you can get away with just Build Tools 2022 if you don't want to install VS proper.

install of net8 and restart of pc is enough , VS2022 isnt required

MeharDT commented 1 week ago

install of net8 and restart of pc is enough , VS2022 isnt required

They do have the SDK installed, it could be deprecated legacy code but Stride checks for MSBuild before showing the above error so I think VS or Build Tools is still required.

https://github.com/stride3d/stride/blob/47375e3fa63f42663ba04ac8334ed5bd6f8568a9/sources/assets/Stride.Core.Assets/PackageSessionPublicHelper.cs#L40

Jklawreszuk commented 1 week ago

@MeharDT The method name can be confusing but in practice this method is looking for NET SDK paths, so no, VS is not required for developing games with Stride

Jklawreszuk commented 1 week ago

snippet:

public static IEnumerable<VisualStudioInstance> GetInstances(string workingDirectory)
    {
      foreach (string dotNetBasePath in DotNetSdkLocationHelper.GetDotNetBasePaths(workingDirectory))
      {
        VisualStudioInstance instance = DotNetSdkLocationHelper.GetInstance(dotNetBasePath);
        if (instance != null)
          yield return instance;
      }

try{
PackageSessionPublicHelper.FindAndSetMSBuildVersion();
Console.Write("Should not throw");//ok
}
//Note: I tested it on Fedora 39
MeharDT commented 1 week ago

snippet:

public static IEnumerable<VisualStudioInstance> GetInstances(string workingDirectory)
    {
      foreach (string dotNetBasePath in DotNetSdkLocationHelper.GetDotNetBasePaths(workingDirectory))
      {
        VisualStudioInstance instance = DotNetSdkLocationHelper.GetInstance(dotNetBasePath);
        if (instance != null)
          yield return instance;
      }
try{
PackageSessionPublicHelper.FindAndSetMSBuildVersion();
Console.Write("Should not throw");//ok
}
//Note: I tested it on Fedora 39

Fair enough, we can probably simplify the method if that's the case. I suspect much of it is probably deprecated legacy code.

@mgbdevp did a restart solve your issue?