New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CompilerApp] Use StrideEditorTargetFramework #1969
[CompilerApp] Use StrideEditorTargetFramework #1969
Conversation
See my comment on #1968 about Stride solution targets vs user targets |
Also, I don't think you can use that property in the |
Good point. I didn't realize it was shipped. |
66fd6ee
to
eb856fb
Compare
@@ -118,8 +118,8 @@ | |||
<Target Name="_StridePrepareAssetCompiler"> | |||
<PropertyGroup> | |||
<!-- First try NuGet layout, then git checkout --> | |||
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\lib\net6.0-windows7.0\')">$(MSBuildThisFileDirectory)..\tools\net6.0-windows7.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand> | |||
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\Stride.Core.Assets.CompilerApp.csproj')">$(MSBuildThisFileDirectory)..\bin\$(Configuration)\net6.0-windows7.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand> | |||
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\lib\net6.0\')">$(MSBuildThisFileDirectory)..\tools\net6.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That path doesn't look correct by the way. I can't find that tools
folder in either the nuget package or the installed stride.
In addition, inside the nuget package, the file has a .dll
extension, not .exe
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i can't find the .exe too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you gen exe with the .net8.0? @Doprez
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's the same issue, with net8.0-windows it works but with just net8.0 it doesn't.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://learn.microsoft.com/en-us/dotnet/core/deploying/
'exe' is a Windows thing so only appears when the platform is specified, otherwise you only get the 'cross-platform dll'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes more sense. I guess the next question is why is it an exe instead of a loadable dll/nuget like other libraries to remove this dependancy. Converting the CompilerApp cross platform would probably be a fairly large task I am guessing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way this is worked around for AssemblyProcessor is that it is loaded as an MSBuild task, but here it wouldn't be possible (VS would require it to target netstandard2.0).
I suggest reverting asset compiler to target windows for the moment to unblock compilation, and file an issue to discuss how to make it run cross platform correctly (linked with the Linux issue made by Caspian).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't be better to have a main assembly as a dll and another project to build it as an app? That way there could be a different app for each supported platform.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be possible instead to invoke dotnet /path/to/dll
?
While this gets worked on should the original PR be reverted? it breaks GameStudio in master currently. |
Agreed, let's revert asset compiler TFM change and keep the targets as they were for the moment to unblock people. |
after running into issues again, when the assetcompiler compiled once with net6.0-windows and you change the assemblyprocessor to net6 it still works but it uses the old assemblyprocessor but i cant get rid of the old one either so i dont know how to build the assemblyprocessor for now |
Not relevant any more (we moved to .NET 8). Will be done differently on the other xplat PRs. Closing. |
PR Details
Stride.Core.Assets.CompilerApp.targets
hadn't been updated in PR #1908Types of changes
Checklist