我在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的一个问题吗?
答案 0 :(得分:18)
这是一个仍然存在的问题。虽然这可能不是7月份的解决方案,但这是3/31/16的工作解决方案。
在打开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>