twopointzero / TJAPlayer3

TJAPlayer3 is a rhythm game application for Windows (and compatible environments). It provides a style of gameplay very similar to that of Taiko no Tatsujin and similar rhythm games, and supports .tja files compatible with a number of other similar rhythm game applications. Download the latest release here: https://github.com/twopointzero/TJAPlayer3/releases
MIT License
158 stars 152 forks source link

Change how & where DLLs are placed to eliminate post-build steps and file location workarounds #10

Open twopointzero opened 4 years ago

twopointzero commented 4 years ago

Can you write a one-sentence description of your request? Right now, DLLs used by TJAPlayer3 are moved into a dll folder but this slows builds, defeats build caching, complicates test automation, etc.

What is the current behavior? DLLs used by TJAPlayer3 are moved, by post-build events, into a dll folder.

What is the expected behavior? DLLs should either be not moved at all, or at least only moved as part of the CI packaging process, so that localhost and CI build/test can avoid post-build events, test project workarounds, etc.

What is the motivation / use case for changing the behavior?

twopointzero commented 4 years ago

For some options if this issue is picked up during/after migration to .NET Core, or even just as inspiration regarding into which folder build should occur and what should get moved and patched where:

WRT 3453 above, the money shot is in vitek-karas' comment of July 8 2019 (https://github.com/dotnet/runtime/issues/3453#issuecomment-509249471)

  <UsingTask TaskName="CreateAppHost" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
  <Target Name="PostBuild" AfterTargets="PostBuildEvent"
          DependsOnTargets="_GetAppHostPaths">
    <CreateAppHost AppHostSourcePath="$(AppHostSourcePath)"
                   AppHostDestinationPath="$(OutputPath)\app.exe"
                   AppBinaryName="bin\app.dll"
                   IntermediateAssembly="$(OutputPath)\app.dll"/>
  </Target>