我正在尝试构建一组类库,以便在我们将要生成的应用程序之间共享代码。
但是,我无法正确创建项目,我无法看到我做错了什么。
让我通过我用来重现这个的步骤,也许这里有人可以看到我做错了什么:
这很有效,如果我选择Run-> Debug菜单项,我可以看到应用程序在模拟器中打开。
我们假设我现在要在iPhone上测试它,所以我访问工具栏中的下拉列表,选择" Debug | iPhone"构建目标,并立即将类库项目变为灰色:
(未内置于主动配置中)
如果我右键单击解决方案,请检查配置映射,当选择与模拟器或iPhone相关的任何内容时,类库将完全从视图中消失,并且无法选择构建。
构建目标下拉列表现在还有6个项目,iPhone的调试,发布,调试/发布以及模拟器的调试/发布。显然,只有不适用于iPhone或模拟器的调试和发布才能构建类库。
我在这里做错了什么?
在一个我没有能够寻找解决方案的奢侈品的另一个项目中,我最终创建了一个空的通用项目,是"正确的"减轻这种情况的方法?
答案 0 :(得分:2)
有趣的是,如果在 App项目之后添加Lib项目,则不会发生这种情况。
我按照你的描述创建了Lib项目,然后添加了一个单视图iPhone应用程序,然后添加了另一个Lib(Lib2)。然后我比较了.sln中的文本,发现Lib缺少以下行(与Lib2相比):
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhone.Build.0 = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.ActiveCfg = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhone.Build.0 = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
使用您自己的GUID代替我的GUID。 GUID将位于文件顶部附近。例如,我看起来像(滚动到结尾):
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib.csproj", "{A9A8640A-C650-46AB-A21C-DF3B5D22BAA3}"
然后我重新打开了解决方案,现在可以在Debug|iPhone
和Debug|iPhoneSimulator
配置中使用Lib。
作为旁注,尽管Lib不会在Debug|iPhone
或Debug|iPhoneSimulator
中构建,但Debug
中的二进制文件是兼容的。我可以构建和运行应用程序就好了。