2015-05-21 35 views
6

Tôi đang cố gắng tạo ra một gói sô cô la. Ban đầu tôi đã tạo một phiên bản không có bất kỳ phụ thuộc nào và tôi chỉ cần đặt một tệp exe vào thư mục tools/bin và sau đó tạo một tệp nuspec đơn giản, và điều này sẽ cài đặt tệp exe vào đường dẫn một cách chính xác, đó là tất cả những gì tôi cần công cụ nội bộ này.Làm cách nào để tạo gói phụ thuộc vào gói "nhắm mục tiêu dự án"?

Tuy nhiên, dự án hiện đã được cấu trúc lại để nó phụ thuộc vào sự phụ thuộc bên ngoài. Sự phụ thuộc là gói nuget nằm trong cùng một kho lưu trữ với dự án chính. Để thêm phụ thuộc, tôi đã thêm nó vào phần phụ thuộc. Bản thân dự án trong Visual Studio cũng phụ thuộc vào nhau. Dưới đây là tập tin nuspec của tôi: (Tôi đã gỡ bỏ một số dữ liệu, đánh dấu bằng rm, nhưng nó không ảnh hưởng đến nó Mọi thứ khác là như nhau.)

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Do not remove this test for UTF-8: if “Ω” doesnt appear as greek uppercase omega letter enclosed in quotation marks, you should use an editor that supports UTF-8, not this one. --> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
     <!-- Read this before publishing packages to chocolatey.org: https://github.com/chocolatey/chocolatey/wiki/CreatePackages --> 
     <id>lisp-translator</id> 
     <title>lisp-translator (Install)</title> 
     <version>0.1.0</version> 
     <authors>rm</authors> 
     <owners>rm</owners> 
     <summary>rm</summary> 
     <description>rm</description> 
     <projectUrl>rm</projectUrl> 
     <tags>lisp-translator admin</tags> 
     <copyright /> 
     <licenseUrl>rm</licenseUrl> 
     <requireLicenseAcceptance>false</requireLicenseAcceptance> 
     <!--<iconUrl>http://cdn.rawgit.com/__REPLACE_YOUR_REPO__/master/icons/lisp-translator.png</iconUrl>--> 
     <dependencies> 
     <dependency id="LispParsingLibrary" version="1.1.0.17190" /> 
     </dependencies> 
     <releaseNotes /> 
    </metadata> 
</package> 

Tuy nhiên, khi tôi cố gắng để cài đặt nó, tôi nhận được một thay bí truyền lỗi:

lisp-translator not installed. An error occurred during installation: 
External packages cannot depend on packages that target projects. 
The install of lisp-translator was NOT successful. 
lisp-translator not installed. An error occurred during installation: 
External packages cannot depend on packages that target projects. 

Chocolatey installed 0/1 package(s). 1 package(s) failed. 
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log). 
Failures: 
- lisp-translator 

Tôi đang làm gì sai khi thêm phụ thuộc này?

Trả lời

1

Đó thực sự là vấn đề đóng gói nuget câm cũ. Các gói LispParsingLibrary có một thư mục gọi là "nội dung" trong đó. Điều đó có nghĩa là gói của bạn cũng sẽ cần một thư mục nội dung trong đó.

Chúng tôi hoàn toàn không khuyến nghị điều đó. Vui lòng yêu cầu người duy trì LispParsingLibrary xóa thư mục đó hoặc tạo thư mục đó khi cài đặt và sao chép tệp vào đó.

Tôi nghĩ chúng tôi đã có một vấn đề nộp để theo dõi điều này, nhưng tôi đã thêm https://github.com/chocolatey/choco/issues/290

+0

Một câu hỏi liên quan là http://stackoverflow.com/questions/24710818/external-packages-cannot-depend-on-packages- rằng-target-projects-partial-failure – ferventcoder

+0

LispParsingLibrary dường như không có thư mục nội dung. Ví dụ: mở nó trong NuGet Package Explorer chỉ hiển thị thư mục lib/net45 với thư mục dll và không có nội dung. – Jake

+0

@Jake nơi nào người ta tìm thấy gói LispParsingLibrary này? Tôi không thấy nó trên Nuget hay Chocolatey. – ferventcoder

Các vấn đề liên quan