【问题标题】:Adding references in a shared (.shproj) project在共享 (.shproj) 项目中添加引用
【发布时间】:2015-05-04 11:45:56
【问题描述】:

我在将 dll 引用添加到共享项目时遇到问题。如下图所示,我有一个通用解决方案,其中包含一个适用于 windows 的项目和一个适用于 windows phone 的项目。

在 HubApp1.Shared 项目中,我需要在 Class.cs 中添加一些代码的引用。我将在 Windows 项目和 Windows Phone 项目中使用 Class.cs。我已经搜索了 Bing 以了解如何解决此问题,但我找不到任何东西。

【问题讨论】:

    标签: c# windows xaml windows-phone win-universal-app


    【解决方案1】:

    您必须在 both WP 和 Windows 项目中添加引用。

    原因是共享项目没有编译到任何输出 DLL - 它被编译到引用它的项目中,因此它不能引用除其他共享项目之外的任何其他项目类型。

    【讨论】:

    • 问题是,我需要共享项目中 Class.cs 中的那个 dll...如果这不可能,我们暂时不需要 windows phone 应用程序,我们可以在 Windows 10 上等待,这当然可以解决我们所有的问题。 :)
    • 如果您将该引用添加到 WP 和 Windows 项目,那么您可以在共享项目中使用此 dll。这是因为共享项目基本上是在编译时链接的 WP 或 Windows 项目的一部分。此外,如果您仅添加此 dll 来假设 WP 项目并在共享项目中使用该 dll 中的一些代码,那么它将仅在 WP 和 Windows 上工作,您需要将其包装在 #if WINDOWS_PHONE_APP#endif 之间 - 否则它不会编译。
    【解决方案2】:

    我知道这是一个老问题,但我在共享项目中遇到了类似的问题。我需要共享项目中的一个类来使用 ConfigurationManager,通常的方法是添加对项目的引用,但您不能对共享项目执行此操作。

    在我的情况下,解决方案非常简单,应该很明显(但我想多了!) - 只需在使用配置管理器时提供完整的参考 - EG:

    var someVal = System.Configuration.ConfigurationManager.AppSettings["someKey"];
    

    不是很优雅但足够简单。

    【讨论】:

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