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

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

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

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

这是两个错误所在的示例。

机器人项目:

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 的问题吗?

您需要引用 Forms PCL 项目,它会在您创建项目时默认执行,除非您单独创建每个项目。只需右键单击 MyApp.Droid 项目 -> 添加引用 -> 解决方案 -> 检查 MyApp(?!?!)

这个问题仍然存在。虽然这可能不是 7 月份的解决方案,但这是 2016 年 3 月 31 日的有效解决方案。

  • 清洁解决方案
  • 建立PCL
  • 从受影响的项目中删除 PCL 引用
  • 重新添加 PCL 引用
  • 建造

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

@silencedmessage 的回答对我很有帮助

虽然我想补充一点,但我注意到我所有的 Xamarin 项目甚至都没有 PCL 引用作为开始。我从一个空白的 Xamarin Forms XAML 项目模板开始,用于所有可能的目标,在阅读此答案之前,我什至没有费心检查对 PCL 的引用。

长话短说:即使使用空白的官方模板,您仍应检查是否已将 PCL 引用添加到所有项目中。奇怪的东西。

我在使用 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>

所有“页面”标签都重新组合到一个新的项目组中,与“编译”标签分开。

另外,添加了整个项目组:

  <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>