Зависимая DLL в NuGet не скопирована в выходной каталог клиента - PullRequest
0 голосов
/ 03 мая 2018

У меня есть проект на C #, который упакован в пакет NuGet. Проект зависит от внешней неуправляемой библиотеки DLL и прекрасно копируется в вывод, если я строю решение локально. Мне уже удалось запаковать dll в пакет NuGet и поместить его в проект клиента, но для параметра «Копировать в выходной каталог» всегда установлено значение «Не копировать».

Я не использую файл .nuspec, так как перешел на новый формат .csproj.

Вот так выглядит мой .csproj:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net462</TargetFramework>
    <PackageId>External.Dll.Wrapper</PackageId>
    <Authors>Me</Authors>
    <Version>1.0.0</Version>
    <Company>None</Company>
    <Owners>Me</Owners>
    <Copyright>Copyright © 2018</Copyright>
    <Description>Wrapper for using external dll</Description>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>

  <ItemGroup>
    <None Include="external.dll">
      <Pack>true</Pack>
      <CopyToOutput>true</CopyToOutput>
      <PackageCopyToOutput>true</PackageCopyToOutput>
      <PackageFlatten>false</PackageFlatten>
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>

</Project>

Может быть, кто-то может сказать мне, что я делаю не так. Я уже провел целый день, пытаясь выяснить это, без удачи. Большое спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Если вы не ссылаетесь ни на что из этого dll напрямую, оно не будет скопировано. Если вы поместите фиктивную декларацию куда-то (ее даже не нужно использовать), то она должна скопироваться.

externaldll.someclass mythingamajig

Если это не сработает, проверьте относительный путь зависимости. Щелкните правой кнопкой мыши Dependencies->Add reference->Browse->, затем выберите файл dll и добавьте его. Возможно, вам придется добавить dll вручную, чтобы он появился там.

...