Nuget添加非托管文件

Nuget添加非托管文件,nuget,unmanaged,Nuget,Unmanaged,我正在使用以下*.targets文件添加构建操作 <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <None Include="$(MSBuildThisFileDirectory)\libeay32

我正在使用以下*.targets文件添加构建操作

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>

        <None Include="$(MSBuildThisFileDirectory)\libeay32.dll">
            <Link>libeay32.dll</Link>
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>

        <None Include="$(MSBuildThisFileDirectory)\COMAssinaDocs.dll">
            <Link>COMAssinaDocs.dll</Link>
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>

        <None Include="$(MSBuildThisFileDirectory)\InterOps.ComAssinaDocs.dll">
            <Link>InterOps.ComAssinaDocs.dll</Link>
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>

        <None Include="$(MSBuildThisFileDirectory)\ssleay32.dll">
            <Link>ssleay32.dll</Link>
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>

    </ItemGroup>
</Project>

libeay32.dll
保存最新
COMAssinaDocs.dll
保存最新
InterOps.ComAssinaDocs.dll
保存最新
ssleay32.dll
保存最新
这就是nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
    <metadata>
        <id>xxx.Providers.SignDocs</id>
    </metadata>
    <files>
        <file src="bin\Release\xxx.Providers.SignDocs.targets" target="build" />
        <file src="bin\Release\xxx.Providers.SignDocs.dll" target="lib\net45" />
        <file src="bin\Release\xxx.Providers.SignDocs.Impl.dll" target="lib\net45" />       
  </files>
</package>

xxx.Providers.SignDocs
我使用这段nuget文档来构建这个包:

基本上,我想要的是使用包将一些非托管DLL复制到项目的输出文件夹中,即使我按照说明操作,目标项目文件targets设置也不会添加,因此文件不会复制到输出目录中。我错过了什么

更新

能够使用下面的配置使其工作

xxx.Providers.SignDocs.targets


libeay32.dll
保存最新
COMAssinaDocs.dll
保存最新
InterOps.ComAssinaDocs.dll
保存最新
ssleay32.dll
保存最新


xxx.Providers.SignDocs

目标文件需要包含在nuspec文件的“package/files”元素中,否则它不会包含在包中。它需要一个“构建”的目标。
目标文件的名称也需要与包的名称相同。

目标文件需要包含在nuspec文件的“package/files”元素中,否则它不会包含在包中。它需要一个“构建”的目标。
目标文件的名称也需要与包的名称相同。

我尝试了此方法,但无效。如果目标文件位于bin\Release文件夹中,则无效?是的。我肯定我遗漏了一些东西,但我看不出它是什么。nupkg文件实际上只是一个zip文件。打开它,你会看到一个包含“目标”文件的“构建”。如果它在那里并且命名正确,那么在安装包时应该向项目中添加对它的引用。如果目标文件不在包中,则nuspec存在问题。如果目标文件在那里,请在安装包后检查项目文件,查看它是否引用目标文件。我知道这是一个zip文件,我检查了它,但文件实际上不在那里。我做了一些改变,最终使它开始工作。ThanksI尝试了此操作,但在bin\Release文件夹中的目标文件中无效?是的。我肯定我遗漏了一些东西,但我看不出它是什么。nupkg文件实际上只是一个zip文件。打开它,你会看到一个包含“目标”文件的“构建”。如果它在那里并且命名正确,那么在安装包时应该向项目中添加对它的引用。如果目标文件不在包中,则nuspec存在问题。如果目标文件在那里,请在安装包后检查项目文件,查看它是否引用目标文件。我知道这是一个zip文件,我检查了它,但文件实际上不在那里。我做了一些改变,最终使它开始工作。谢谢
<None Include="$(MSBuildThisFileDirectory)\libeay32.dll">
  <Link>libeay32.dll</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

<None Include="$(MSBuildThisFileDirectory)\COMAssinaDocs.dll">
  <Link>COMAssinaDocs.dll</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

<None Include="$(MSBuildThisFileDirectory)\InterOps.ComAssinaDocs.dll">
  <Link>InterOps.ComAssinaDocs.dll</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

<None Include="$(MSBuildThisFileDirectory)\ssleay32.dll">
  <Link>ssleay32.dll</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>xxx.Providers.SignDocs</id>
  </metadata>
  <files>
    <file src="..\..\tools\libeay32.dll" target="build" />
    <file src="..\..\tools\COMAssinaDocs.dll" target="build" />
    <file src="..\..\tools\InterOps.ComAssinaDocs.dll" target="build" />
    <file src="..\..\tools\ssleay32.dll" target="build" />
    <file src="bin\Release\xxx.Providers.SignDocs.targets" target="build" />
    <file src="bin\Release\xxx.Providers.SignDocs.dll" target="lib\net45" />
    <file src="bin\Release\xxx.Providers.SignDocs.Impl.dll" target="lib\net45" />
  </files>
</package>