当前命名空间中不存在类型或命名空间 '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>
我在 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>