如何创建一个依赖于"目标项目"?

时间:2015-05-21 20:08:16

标签: c# nuget chocolatey

我正在尝试创造一个巧克力包。我最初创建了一个没有任何依赖项的版本,我只是将一个exe文件放在tools / bin目录中,然后创建一个简单的nuspec文件,这正确地将exe文件安装到路径中,这就是我需要的所有内容这个内部工具。

但是,该项目现在已经过重组,因此它依赖于外部依赖性。依赖项是一个nuget包,它与主项目位于同一个存储库中。要添加依赖项,我将其添加到依赖项部分。 Visual Studio中的项目本身也依赖于它。这是我的nuspec文件:(我删除了一些数据,标记为rm,但它不应该影响它。其他一切都是一样的)

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

然而,当我尝试安装它时,我得到了一个相当深奥的错误:

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

关于添加此依赖项,我做错了什么?

1 个答案:

答案 0 :(得分:1)

这是一个非常古老,愚蠢的nuget包装问题。包LispParsingLibrary中有一个名为“content”的文件夹。这意味着您的软件包还需要一个内容文件夹。

我们根本不建议这样做。请要求LispParsingLibrary的维护者删除该文件夹或在安装时创建它并将文件复制到其中。

我认为我们有一个问题需要跟踪,但我添加了https://github.com/chocolatey/choco/issues/290