Search code examples
dllsystem.net-6.0

System.Management.dll not being copied to output directory .net 6 c#


There is an error System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.'.I figured when the System.Management.dll is in the output directory, the error will be gone.

It is reference using NuGet but I couldn't get libraries in NuGet to be copied to the output folder. So I thought of adding the physical System.Management.dll file into my project and and reference it as assemblies (right-click project -> Add Reference -> browse to library) thenset 'Copy Local' to True. However, the dll still won't get copied over to the output folder.

The application is on .Net 6. Is there a reason behind why I can't copy this library like other?


Solution

  • Figured out I could copy nuget package references to output directory by setting this attribute in the project file

    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    

    Then the nuget referenced packages will be copied to the output directory.