2016-06-17 3 views
1

다음 내용으로 Nuget Package Explorer를 통해 Nuget 패키지를 만들었습니다.다중 DLL이있는 Nuget 패키지

lib 
    -- CPPLib.dll 
    -- DotNetWrapper.dll 

CPPLib.dll는 (고유의 C++) 로직 구현 기본 라이브러리이며 DotNetWrapper.dll는 C# 프로젝트 참조 랩퍼이다.

나는이 nuget 패키지를 설치하려고

, 내가 왜 네이티브 CPPLib.dll을 설명 패키지를 기준으로 설치됩니다 내부

Install failed. Rolling back... 
    Install-Package : Failed to add reference to 'CPPLib.dll'. 
    At line:1 char:16 
    + install-package <<<< -id MyPackage 
    + CategoryInfo   : NotSpecified: (:) [Install-Package], InvalidOperationException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

내가 "LIB"폴더에있는 모든 걸 알고 다음과 같은 오류를 가지고 C# 프로젝트에 설치할 수 없습니다.

는 다음 나는 패키지가 설치 될 수있다 그런 다음이

content 
     -- CPPLib.dll 
    lib 
     -- DotNetWrapper.dll 

같은 패키지에 "내용"폴더에 CPPLib.dll를 이동하려고했으나 DotNetWrapper.dll 찾을 수 없기 때문에이 프로젝트는 구축되지 않습니다 CPPLib.dll 같은 폴더에 있습니다.

어떻게이 문제를 해결할 수 있습니까? 어떻게 든 lib 폴더에 모든 것을 넣을 수 있으며 패키지의 DotNetWrapper.dll 만 "노출"할 수 있습니까?

당신이 당신의 nuspec 파일에 파일 참조 작업해야
+0

아니, 당신이 그들을 혼합 할 수 없습니다하는 형제된다 -

Pls는 이러한 태그는 다른 수준에 있는지 언급. 두 개의 별도 패키지를 만들어야합니다. – Slobo80

답변

0

:

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> 
    <metadata> 
     ... 
     <references> 
      <reference file="DotNetWrapper.dll" /> 
     </references> 
    </metadata> 
    <files> 
     <file src="bin\Release\DotNetWrapper.dll" target="lib" /> 
     <file src="bin\Release\CPPLib.dll" target="lib" /> 
    </files> 
</package> 

은 그래서 당신은 "파일"로 패키지에 넣어 유일한 참조 추가 할 nuget에게 파일을 정의는 래퍼입니다 "references"가있는 DLL. "참조"내부에 "메타 데이터"해야하지만 "파일", "메타 데이터"