在共享的(.shproj)项目中添加引用

12

我在向共享项目添加dll引用时遇到了问题。如下图所示,我有一个通用解决方案,其中包含Windows项目和Windows Phone项目。

Solution

在HubApp1.Shared项目中,我需要添加对Class.cs代码的引用。我将在Windows项目和Windows Phone项目中使用Class.cs。我已经在Bing上搜索了如何解决这个问题,但什么都没有找到。

2个回答

11

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

原因是共享项目不会编译成任何输出DLL - 它会编译引用它的项目中,因此它不能引用除其他共享项目以外的任何其他项目类型。


问题是,我需要在共享项目中的Class.cs中使用那个dll...如果这不可能,我们暂时不需要Windows Phone应用程序,我们可以等待Windows 10,当然,它将解决我们所有的问题。 :) - James Esh
3
如果您将该引用同时添加到WP和Windows项目中,则可以在共享项目中使用此dll。这是因为共享项目基本上是与WP或Windows项目的一部分,在编译时进行链接。此外,如果您仅将此dll添加到WP项目中,并在共享项目中使用一些代码,则仅适用于WP,在Windows上,您需要在这之间包装“ #if WINDOWS_PHONE_APP”和“#endif” - 否则它将无法编译。 - Ondřej Kunc

0

我知道这是一个老问题,但我在共享项目中遇到了类似的问题。我需要在共享项目中使用ConfigurationManager类,通常的方法是向项目添加引用,但是在共享项目中无法这样做。

在我的情况下,解决方案非常简单,应该很明显(但我想太多了!)-只需在使用配置管理器时给出完整的引用-例如:

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

不太优雅,但足够简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接