【问题标题】:nuget package restore with MonoDevelop使用 MonoDevelop 恢复 nuget 包
【发布时间】:2014-05-15 06:08:29
【问题描述】:

我有一个主要在 Visual Studio 2012 中开发的解决方案。我想在 MonoDevelop 中进行开发,而不会出现重大不兼容问题。

到目前为止,我已经为 MonoDevelop 安装了 mrward 的 nuget 插件,如果我通过该界面手动将每个包添加到 packages.config 中,一切正常。然而,这是非常繁重的。在撰写本文时,此插件不支持自动包恢复。

我从 CodePlex 下载了 nuget.exe(“NuGet 命令行实用程序”,如其标签所示)。我使用简单的 find/xargs 组合来安装所有必需的包:

find . -name packages.config | xargs -I '{}' mono nuget.exe install '{}'

这会在运行它的目录中创建几十个目录,而不是像预期的那样将东西放在 packages/ 下,而且它也不会触及项目文件,因此 MonoDevelop 仍然认为它应该在MonoDevelop 的启动目录。

因此,我从包含所有这些包文件夹的工作目录中打开了 MonoDevelop,但我仍然得到无效的引用。我认为这可能是因为该项目正在寻找 package_name/ 引用,但工作目录中的文件夹名称为 package_name.version/。

对于与此解决方案进行交互的一种理智、简单的方式有什么建议吗?接下来我将尝试修改我的 shell 命令,使其自动下降到项目/包并从该目录运行 nuget。

【问题讨论】:

  • 所提供的答案对您有帮助吗?如果没有,您能提供自己的解决方案吗?

标签: monodevelop nuget


【解决方案1】:

您是否尝试过使用-o command line parameter with NuGet.exe?您可以使用它来将软件包安装到特定的软件包文件夹中。

MonoDevelop 的 NuGet 插件支持从 version 0.6 或更高版本恢复包。右键单击您的项目并选择恢复包。这将为解决方案中的所有项目下载您的 packages.config 中定义的所有包。它使用 NuGet.exe 来执行此操作。

另一种实现此功能的方法是使用自定义 NuGet MSBuild 目标,以便在使用 xbuild 时在构建时进行包还原。不过,这将需要对项目文件进行一些手动编辑。在幕后,自定义 MSBuild 目标仅使用 NuGet.exe,其命令行与您已经指定的输出目录选项类似。所以我会尝试命令行方法,因为那样会更少工作。

您必须从 codeplex 上的 NuGet 存储库获取以下文件:

  • NuGet.exe
  • NuGet.targets
  • NuGet.config

将它们放在某个目录中。通常,这些文件放在与解决方案文件相同的目录中的 .nuget 目录中。然后,您需要编辑项目文件以包含 NuGet.targets 文件并定义 SolutionDir 属性。所以是这样的:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> 

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

您还需要在您的计算机上启用包还原。您可以在“选项”对话框中使用 MonoDevelop 的 NuGet 插件来执行此操作。在 Linux 下,这可以从 Preferences 下的 Edit 菜单中获得。然后查看 NuGet - 常规选项,有一个用于启用包还原的复选框。

有一个由 Jonathan Channon 创建的 example project on GitHub,它使用包还原并在 MonoDevelop 中使用 xbuild 构建时工作。 GitHub about using NuGet restore on Linux 上还有一个问题,可能会有所帮助。

更新:2014-05-14:MonoDevelop 的 NuGet 插件现在支持包还原。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多