NuGet中的从属DLL未复制到客户端

时间:2018-05-03 05:10:41

标签: c# nuget csproj

我有一个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 :(得分:0)

如果您不直接引用dll中的任何内容,则不会复制。如果你在某处放置一个虚拟声明(甚至不必使用它),那么它应该复制过来。

externaldll.someclass mythingamajig

如果这不起作用,请检查依赖关系的相对路径。右键单击Dependencies->Add reference->Browse->,然后选择dll文件并添加它。您可能需要手动添加dll才能显示在那里。