我有一个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>
也许有人可以告诉我我做错了什么。 我已经花了一整天的时间试图解决这个问题,没有运气。 非常感谢!
答案 0 :(得分:0)
如果您不直接引用dll
中的任何内容,则不会复制。如果你在某处放置一个虚拟声明(甚至不必使用它),那么它应该复制过来。
externaldll.someclass mythingamajig
如果这不起作用,请检查依赖关系的相对路径。右键单击Dependencies->Add reference->Browse->
,然后选择dll
文件并添加它。您可能需要手动添加dll
才能显示在那里。