2016-11-11 53 views
0

我使用下列* .targets文件中添加生成操作的NuGet添加非託管文件

<?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> 

,這是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> 

而且我用這塊的NuGet的文檔構建這個包:

Including MSBuild props and targets in a package

基本上我想要的是得到一些聯合國託管的dll複製到項目的輸出文件夾使用該軟件包,甚至我按照說明目標項目文件目標setion iss不添加,因此文件不復制到輸出目錄。我錯過了什麼?

UPDATE

能得到它的工作使用的配置波紋管。

xxx.Providers.SignDocs.targets

<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> 

回答

0

的目標文件需要被包括在nuspec的 '包/文件' 元素文件,否則它不包含在軟件包中。它需要「構建」的目標。 目標文件也需要與軟件包命名相同。

+0

我試過這個,但它不起作用謝謝 – Marco

+0

目標文件是否位於bin \ Release文件夾中? –

+0

是的。我確定我錯過了一些東西,但我看不到它是什麼。 – Marco