admin管理员组

文章数量:1314496

We have a WPF application that we are trying to publish as a single file.

I am running the command:

dotnet publish .\{path_to_projectA_csproj_file}.csproj -c Release --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true -p:IncludeNativeLibrariesForSelfExtract=true --nologo -v q --property WarningLevel=0 /clp:ErrorsOnly

It generates the following files:

Problem is, when trying to run it in test environment, it does not find a third party .dll. Error from event log:

The third party .dll is referenced in ProjectB that is referenced by ProjectA that I am trying to publish.

Third party .dll reference in ProjectB .csproj:

I tried:

  • using the "-p:IncludeAllContentForSelfExtract=true" publish parameter - did not help
  • setting build action to Content - did not help
  • settings .csproj parameters CopyToOutputDirectory and CopyToPublishDirectory to PreserveNewest - did not help

tl;dr how to include third party libraries into .exe file when publishing a dotnet application as single file?

We have a WPF application that we are trying to publish as a single file.

I am running the command:

dotnet publish .\{path_to_projectA_csproj_file}.csproj -c Release --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true -p:IncludeNativeLibrariesForSelfExtract=true --nologo -v q --property WarningLevel=0 /clp:ErrorsOnly

It generates the following files:

Problem is, when trying to run it in test environment, it does not find a third party .dll. Error from event log:

The third party .dll is referenced in ProjectB that is referenced by ProjectA that I am trying to publish.

Third party .dll reference in ProjectB .csproj:

I tried:

  • using the "-p:IncludeAllContentForSelfExtract=true" publish parameter - did not help
  • setting build action to Content - did not help
  • settings .csproj parameters CopyToOutputDirectory and CopyToPublishDirectory to PreserveNewest - did not help

tl;dr how to include third party libraries into .exe file when publishing a dotnet application as single file?

Share Improve this question asked Jan 30 at 11:52 daily_driverdaily_driver 1151 silver badge9 bronze badges 1
  • Maybe you'll find something worth a read in the docs Single-file deployment. – Prolog Commented Feb 2 at 18:33
Add a comment  | 

1 Answer 1

Reset to default 0

The third-party .dll was compiled as 32-bit, so I had to add a "win-x86" runtime identifier to the project.

本文标签: aspnet coreHow to include third party libraries in dotnet publish as single fileStack Overflow