The only output of msbuild_binary.publish is a directory of files, and the DefaultInfo does not have executable set, because bazel will try to create a runfiles_manifest, which conflicts with the directory action. This means that external rules don't have a way to execute the published binary in an action.
This can be solved by:
adding a launcher attribute to DotnetPublishInfo and making that provider public.
reorganizing the output directory format for publish
The only output of msbuild_binary.publish is a directory of files, and the DefaultInfo does not have executable set, because bazel will try to create a runfiles_manifest, which conflicts with the directory action. This means that external rules don't have a way to execute the published binary in an action.
This can be solved by:
launcher
attribute to DotnetPublishInfo and making that provider public.