【问题标题】:Nuget Package Installs Via Console But No Reference Added For C++ ProjectNuget 包通过控制台安装,但没有为 C++ 项目添加参考
【发布时间】:2017-08-24 19:12:29
【问题描述】:

我正在尝试安装此网页上详细介绍的 NuGet 包:https://docs.microsoft.com/en-us/azure/storage/storage-c-plus-plus-how-to-use-blobs

供参考,说明如下:

Windows:在 Visual Studio 中,单击工具 > NuGet 包管理器 > 包管理器控制台。在 NuGet 包管理器控制台中键入以下命令,然后按 ENTER。

这行得通……有点。该包是在本地下载的,但没有将引用添加到我的项目中。当我手动或从 PM 控制台安装包时,没有添加任何参考。

我能够找到的说明(例如here)只是坚持将自动添加引用。这很好用,但它没有提供调试参考点或如何手动添加它们。

我还缺少其他选项吗?

谢谢。

【问题讨论】:

    标签: c++ visual-studio visual-studio-2015 nuget nuget-package


    【解决方案1】:

    引用没有被添加到我的项目中。当我手动或从 PM 控制台安装包时,没有添加参考

    这是因为 NuGet 无法直接添加对原生项目的引用,\lib 文件夹中无法识别“原生”目标框架。 详细信息可以参考Support for Native Projects

    另外,安装wastorage包后,你会注意到blob.hstorage_account.h被添加到External Dependencies:

    然后,您可以成功地将以下包含语句添加到 C++ 文件的顶部,以便使用 Azure 存储 API 访问 Blob:

    #include <was/storage_account.h>
    #include <was/blob.h>
    

    更新: 根据 JuniorIncanter 的评论,在 .vcxproj 中添加 .targets 和 .props 文件:

      <ImportGroup Label="ExtensionTargets">
    <Import Project="..\packages\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn.targets" Condition="Exists('..\packages\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn.targets')" />
    <Import Project="..\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.targets" Condition="Exists('..\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.targets')" />
    <Import Project="..\packages\wastorage.v120.3.0.0\build\native\wastorage.v120.targets" Condition="Exists('..\packages\wastorage.v120.3.0.0\build\native\wastorage.v120.targets')" />
    <Import Project="..\packages\wastorage.v140.3.0.0\build\native\wastorage.v140.targets" Condition="Exists('..\packages\wastorage.v140.3.0.0\build\native\wastorage.v140.targets')" />
    

    【讨论】:

    • "blob.h 和 storage_account.h 已添加到外部依赖项" 他们没有。我是否需要手动添加“.props”文件和/或“.targets”文件?如果是这样,是否有我可以遵循的说明这些文件应包含的内容?
    • 我只是按照以下步骤操作,无法重现您屏幕截图中的情况:1)启动 VS2015 2)文件->新建->项目 3)选择 Win32 项目 -> 确定 4)完成 5 ) 右键单击​​ References -> Manage Nuget Packages 6) 浏览 -> 在搜索中键入“wastorage” 7) 选择“wastorage”(顶部链接)-> 安装 8) 检查 PM 日志,说安装成功 没有添加参考,没有头文件添加。我缺少什么步骤/设置?
    • 如果您可以为这个虚拟项目包含您的 .vcxproj、.targets 和 .props 文件,我们将不胜感激。至少有一个参考会有所帮助。
    • @JuniorIncanter ,无需手动添加“.props”文件和/或“.targets”文件,nuget 会添加它们。我按照您在 Visual Studio 2015 update3 中的步骤操作,添加了头文件,因此请仔细检查头文件并尝试将您的 Visual Studio 2015 更新为更新 3。添加 #include #include 语句到 C++ 文件的顶部 ?此外,我已经用 .targets 文件更新了我的答案。
    【解决方案2】:

    对于那些偶然发现这个问题的人来说,没有可行的解决方案。出现问题是因为我正在创建 UAP 应用程序,并且给定的 Nuget 包不支持 UAP。此时,为了继续,我必须下载 Nuget 包的源代码并使用 -ZW 标志重新编译它。

    请看这里:https://msdn.microsoft.com/en-us/library/mt186162.aspx

    如果您有 DLL 或静态库的源代码,您可以使用 /ZW 重新编译为 UWP 项目。

    【讨论】:

    • 很高兴知道您已解决此问题。请标记您的答案,这对遇到相同问题的其他社区有好处。
    • 已修复,我的错!迟到总比没有好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2016-05-01
    相关资源
    最近更新 更多