当前命名空间中不存在类型或命名空间“App”

时间:2015-07-28 02:09:05

标签: xamarin xamarin.ios xamarin.android xamarin.forms

我在Visual Studio 2015中遇到了一个新制作的Xamarin.Forms应用程序的问题。我将Droid / iOS项目添加到解决方案中,它给了我一个构建错误,说...

The type or namespace 'App' does not exist in the current namespace

以下是两个错误所在的示例。

Droid项目:

namespace MyApp.Droid
{
    [Activity (Label = "MyApp", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);

            global::Xamarin.Forms.Forms.Init (this, bundle);
                LoadApplication (new MyApp.App ());
                //Error on the above line at MyApp.App ()
            }
        }
}

iOS项目:

namespace MyApp.iOS
{
    [Register("AppDelegate")]
    public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init ();
            LoadApplication (new MyApp.App ());
            //Error on above line in MyApp.App ()
            return base.FinishedLaunching (app, options);
        }
    }
}

这个解决方案刚刚完成,尚未完成编码,这可能是VS2015的一个问题吗?

4 个答案:

答案 0 :(得分:18)

这是一个仍然存在的问题。虽然这可能不是7月份的解决方案,但这是3/31/16的工作解决方案。

  • 清洁解决方案
  • 构建PCL
  • 从受影响的项目中删除PCL参考
  • 重新添加PCL参考
  • 构建

在打开XAML文件并切换回PCL项目中的C#文件后,有时也会发生这种情况。

答案 1 :(得分:2)

您需要引用Forms PCL项目,除非您单独创建每个项目,否则它将在您创建项目时默认执行。恰到好处点击MyApp.Droid项目 - >添加参考 - >解决方案 - >检查MyApp(?!?!)

答案 2 :(得分:2)

@silencedmessage的回答帮助了我。

虽然我想补充一点,但我注意到我所有的Xamarin项目都没有开始的PCL参考。我开始使用一个空白的Xamarin Forms XAML项目模板来处理所有可能的目标,在阅读这个答案之前,我甚至都没有费心去检查对PCL的引用。

故事很长:即使是空白的官方模板,您仍应检查PCL参考是否已添加到所有项目中。奇怪的东西。

答案 3 :(得分:0)

我在使用 WPF 应用程序时遇到了同样的问题。我通过打开项目属性、将程序集名称复制到默认命名空间、保存文件并以相反的方式做同样的事情来修复它。 这些值已经相同,但由于某种原因,它使 Visual Studio 添加到项目文件中。 这些是在第一个 PropertyGroup(包含 TargetFrameworkVersion)中添加的:

<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>

所有“Page”标签都重新组合在一个新的 ItemGroup 中,与“Compile”标签分开。

此外,还添加了整个 ItemGroup:

  <ItemGroup>
    <BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
      <Visible>False</Visible>
      <ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
      <Install>true</Install>
    </BootstrapperPackage>
    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>false</Install>
    </BootstrapperPackage>
  </ItemGroup>