✅ [SOLVED] MSBuild Task says file does not exist

I've made a custom MSBuild task to zip up the newly created .dll along with relevant files for release whenever the project is built. For some reason though, it says the newly created .dll does not exist... When the log literally shows its existence in the exact location like two line up:
CopyFilesToOutputDirectory:
  Copying file from "/home/newmaz/Documents/HFF_ObjectGrabber/build/obj/ObjectGrabber/Debug/Debug/ObjectGrabber.dll" to "/home/newmaz/Documents/HFF_ObjectGrabber/build/bin/output/ObjectGrabber.dll".
  ObjectGrabber -> /home/newmaz/Documents/HFF_ObjectGrabber/build/bin/output/ObjectGrabber.dll
ZipOutput:
  Zipping build
  File copied: /home/newmaz/Documents/HFF_ObjectGrabber/src/../README.md
  File copied: /home/newmaz/Documents/HFF_ObjectGrabber/src/../icon.png
  File copied: /home/newmaz/Documents/HFF_ObjectGrabber/src/../manifest.json
/home/newmaz/Documents/HFF_ObjectGrabber/src/ObjectGrabber.csproj(34,5): error : File does not exist: /home/newmaz/Documents/HFF_ObjectGrabber/src/../build/bin/output/ObjectGrabber.dll

Like, it just copied the file into the exact location it's complaining about

Here's the relevant snippet of the ZipTask:
foreach (ITaskItem input_file in Files)
{
    string file_string = input_file.ItemSpec;
    if (File.Exists(file_string))
    {
        string file_to_zip = Path.Combine(directory_to_zip, Path.GetFileName(file_string));
        File.Copy(file_string, file_to_zip, true);
        Log.LogMessage("File copied: " + file_string);
    }
    else
    {
        Log.LogError("File does not exist: " + file_string);
        return false;
    }
}

And here's the part of my project's .csproj that calls it:
  <UsingTask TaskName="ObjectGrabberBuildTasks.ZipTask"
             AssemblyFile="$(RootDir)\tasks\build\bin\tasks\ZipTask.dll"/>

  <Target Name="ZipOutput"
          AfterTargets="CopyFilesToOutputDirectory">
  
    <ItemGroup>
      <ZipFiles Include="$(RootDir)\README.md" />
      <ZipFiles Include="$(RootDir)\icon.png" />
      <ZipFiles Include="$(RootDir)\manifest.json" />
      <ZipFiles Include="$(OutputPath)$(AssemblyName).dll" />
    </ItemGroup>  
            
    <Message Importance="high" Text="Zipping build" />

    <ZipTask Files="@(ZipFiles)"
             OutputName="GrabCountTracker"
             OutputLocation="$(SharedBuildDir)"
    />
  </Target>

Yes, I'm aware that there's no \ between the $(OutputPath) and $(AssemblyName), the $(OutputPath) property has the \ included, and you can tell in the error message that it's successfully adding a / between the directory and file name.

Any thoughts?
Was this page helpful?