【问题标题】:Nuget Resolve dependencies from local filesNuget 从本地文件解析依赖项
【发布时间】:2014-11-05 16:03:26
【问题描述】:

我有一个包含四个项目、三个 PCL 和一个 WinRT 的解决方案。我已经设法为每个单独创建了一个 nuget 包,但是,我想为所有这些包创建一个包,但是它们之间存在外部依赖关系以及依赖关系,我不知道如何解决它们。我发现的外部依赖是这样的:

<?xml version="1.0"?>
(...)
    <dependencies>
      <dependency id="SampleDependency" version="1.0" />
    </dependencies>
(...)
</package>

但是如何指定本地依赖项?
您可以在此处查看结构图:http://i.imgur.com/AlotgHy.png

【问题讨论】:

  • 您应该在您的问题中添加一个 winrt 标签,以便其他人可以轻松找到它

标签: windows-runtime nuget nuget-package portable-class-library


【解决方案1】:

我找到了一种使用 Visual Studio 扩展项目的方法,但是由于问题是关于 Nuget 的,我将发布我如何在 Nuget 中解决这个问题。
因为我在我的一个 PCL 中有视图,所以事情变得有点复杂,但是当我找到我需要的文件和文件结构时,这很容易。这是结构:

所以这个想法实际上很简单,在这种情况下,我想把所有东西都放在.dlls,所以你需要添加一个 lib 部分,然后是平台特定的文件夹(在我的例子中 wpa81),然后是您需要的每个 .dll 文件。

对于 WindowsRuntinme 项目,您需要两个文件,一个 WindowsRuntinmeProject.priWindowsRuntimeProject.winmd
在PCL 文件的情况下需要有视图、额外的文件和逻辑,所以你需要在平台文件夹中添加ClassLibraryWithViews.dll,然后你需要创建一个与 PCL 项目同名的文件夹,然后在里面放 ClassLibraryWithViews.xr.xml(有一些 xaml 标记和信息),然后你在项目中创建视图的文件夹结构,如果你碰巧有的话。在我的示例中,我在 Themes 文件夹中有一个 Generic.xaml,在我的 View 文件夹中有一个 PageView.xaml,所以我在这里复制该结构。你会注意到文件不是.xaml,它们实际上是.xbf,这是你构建项目后得到的,所以这些是你需要使用的。我还应该指出,我的 Generic.xbf 是一个 ResourceDictionary(没有代码隐藏),而我的 PageView.xbf 实际上是一个页面,所以它有代码隐藏,但是当你构建包时,它是透明的,即不错。

然后,在您将它安装到您的项目后,您将在平台文件夹中看到每个 .dll,并且您还会看到 WinRT 项目,就好像它是 .dll
需要指出的是,这里的每个文件都是通过在解决方案中构建项目生成的,因此无需创建任何文件。

还要提一点,您可以看到我将 MvvmLight .dlls 直接添加到我的项目中,尽管如果您愿意,您可以将它们作为依赖项添加到 nuget 包元数据中,这样在安装时会获取并安装它们'是 nuget 包。该部分可以在这里看到:

【讨论】:

    猜你喜欢
    • 2021-10-13
    • 2020-11-07
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多