Files
stride/sources/Directory.Build.props
Virgile Bello a9f9148bcb Sentry: disable the source generator repo-wide, its startup initializer needs Sentry.dll
The generator injects a module initializer that loads Sentry.dll before Main. The installed
GameStudio resolves its dependencies from the store, where a PrivateAssets=all package isn't, so
it failed to start with a FileNotFoundException. The asset compiler already switched it off for
itself; Sentry is only needed at send time, so switch it off once in the shared props.
(ExcludeAssets="analyzers" doesn't keep the SDK from loading the generator.)
2026-09-07 23:33:38 +09:00

20 lines
1.4 KiB
XML

<Project>
<PropertyGroup>
<!-- StrideRoot points to the repository root (one level above sources/).
This file is auto-discovered during Microsoft.Common.props evaluation, which
happens inside Microsoft.NET.Sdk initialization — i.e., inside Sdk.props.
Therefore $(StrideRoot) is available within SDK files and for the closing
targets <Import> at the bottom of project files, but NOT for the opening
props <Import> (which uses GetDirectoryNameOfFileAbove to locate Sdk.props
without any pre-set property). See docs/build/SDK-GUIDE.md for details. -->
<StrideRoot>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)../'))</StrideRoot>
<!-- Stride's own assemblies aren't trimmed/AOT-published by the engine repo build;
end-user games re-enable the analyzer via Microsoft.NET.Sdk defaults. -->
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
<!-- Sentry's source generator injects a module initializer into an exe that loads Sentry.dll at startup.
The apps resolving their dependencies from the store (GameStudio, the asset compiler) can't satisfy
that, and nothing needs it: Sentry is only used at send time. This property is the only switch;
ExcludeAssets="analyzers" on the reference doesn't keep the SDK from loading the generator. -->
<SentryDisableSourceGenerator>true</SentryDisableSourceGenerator>
</PropertyGroup>
</Project>