In my bot.json I point to the bin/release directory. My build fails, and log.str_err contains Bot not found.
In the downloaded build zip I see the compiled binaries are in the bin/debug directory.
When I point my bot.json to bin/debug everything works as expected, and a match is played on the portal.
Is this the intended build configuration? I don’t have any compiler preprocessor directives for release or debug, so it doesn’t affect me, but might affect others.
I’m having the same issue .net core 2.1. but in my case it doesn’t seem it’s finding the correct build files on debug build as my bot doesn’t seem to make any move.
The exact location of your dotnet binary (dll) is specified by FolderProfile.pubxml under …/Properties/PublishProfiles I believe. You can edit this file with a normal text editor very easily. You can find more details at https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish
@RaoMarz
That seems like a hack for a simple .net core publish especially when they ask us to specify the bot location in bot.json. We just assume publish defaults as it’s very easy to specify --output directory with dotnet publish. Otherwise they could have documented it somewhere or just asked us for a .bat file to build our own project.
I can not really comment on that, as I just looked at the starter bot dotnet core project, and saw the likely reason for why the bot.json and build location might differ. I use C++ for my bot, and I can tell you to get the build to work correctly took me quite a few tries, so I do think some better informative error logging could help a lot. And I think if one can provide your own batch file or shell script to build your own project, to override the default build rules for the programming language, it can also be very helpful.
That would certainly make compilation much easier, but to keep the challenge fair we opted for the game-runner deciding how processes are run. With a custom .bat file, some languages may gain an advantage in how they can select resources for use. We simply opted for the safe route, since it is difficult checking if any such special capabilities exist that we are unaware of.