【问题标题】:How do I add a reference to a Shared Code project (.shproj) from another project如何从另一个项目添加对共享代码项目 (.shproj) 的引用
【发布时间】:2014-06-18 20:59:17
【问题描述】:

当我在 Visual Studio 中创建一个新的通用应用项目时,它创建了一个共享项目,让我可以在创建的 Windows Phone 8.1 和 Windows 8.1 项目之间共享代码。

现在我还有其他项目也想使用该共享代码。但是,我没有看到在“添加引用...”窗口中添加选择该项目的方法。

如果我尝试从现有项目之一复制引用,则会收到错误:

灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))

当我单击“粘贴参考”时。如何从其他项目中引用共享项目?

【问题讨论】:

    标签: c# .net vb.net visual-studio


    【解决方案1】:

    添加引用需要编辑要添加的项目文件。如果有帮助,您可以查看已被引用的项目文件以查看工作示例。

    在项目文件(例如 .csproj)的底部附近可能已经有一个 <Import> 元素,例如

    <Project ...>
      [...]
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    </Project>
    

    您可以通过为共享项目添加另一个元素来添加共享项目。例如:

    <Project ...>
      [...]
      <Import Project="..\Shared\Shared.projitems" Label="Shared" />
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    </Project>
    

    标签属性设置为“共享”很重要。如果将其设置为其他内容,则 Visual Studio 将不会将其识别为共享项目,并且不会出现在引用下。项目应设置为相应“.projiitems”文件的路径。

    【讨论】:

    • 很高兴在这里看到,如何添加对 dll 的引用。
    • 我希望在 Visual Studio 2017 中,您不必破解 .csproj 文件
    • @Omzig @theguy's answer for VS2017 不起作用吗?我无法测试它。
    • 更正 Vossad01,缺少“共享项目”选项卡。除非你必须做一些愚蠢的事情并启用它。
    • 我在一个 webapi2 项目的 VS 15.6.6 中遇到了问题。所以它不仅限于单元测试。
    【解决方案2】:

    Visual Studio 2017:

    右键单击解决方案资源管理器中的引用或依赖项并选择“添加引用...”

    参考管理器将打开。点击参考管理器左侧的“共享项目”

    然后选择您的项目并单击“确定”。

    【讨论】:

    • 应该理论上也适用于 VS2015(相同的选项卡都存在)。但是我遇到了共享项目由于某种原因没有列出的问题。
    • @MageXy 你确定这些是 Visual Studio 2017 的截图吗?我的 VS2017 没有“共享项目”/grr
    • 我在 VS2017 的参考管理器中没有看到“共享项目”
    • 我正在使用 VS 2017,并且在参考管理器的左侧确实有共享项目。但是,我找不到添加共享项目的方法。我单击了 Browse... 按钮,然后尝试添加 .sln 文件,但失败了。然后我尝试添加 .shproj 文件,但失败了。
    • 检查您的 VS 2017 版本。15.9 中有一个错误修复,将显示共享项目选择
    【解决方案3】:

    TargetProject.csproj 文件中添加该字符串:

    <Import Project="..\YourSharedProject\YourSharedProject.projitems" Label="Shared" Condition="Exists('..\YourSharedProject\YourSharedProject.projitems')" />
    

    【讨论】:

    • 这对我有用。 VS2019 - 如果我在解决方案中添加了一个“现有”项目,那么它才允许我向目标添加一个“共享”项目引用。这是通过 GUI 实现的。如果我只是在目标 csproj 中直接添加了与上面类似的一行,它也可以工作。
    【解决方案4】:

    检查您的 Visual Studio 版本。在 VS2017 中有一个针对 15.9 版的错误修复,它将显示共享项目选择器。点击工具->更新获取最新版本的VS

    【讨论】:

      【解决方案5】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-09
        • 2018-09-23
        • 1970-01-01
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 1970-01-01
        相关资源
        最近更新 更多