UI 구성 요소가 포함 된 일반적인 PCL과 함께 Xamarin 양식 (Xamarin Studio 5.7 사용) 프로젝트가 있습니다. 나는 Classes (No XAML 디자이너)를 사용하여 프로젝트를 시작했으며 제대로 작동하고 컴파일하며 몇 개의 하위 페이지가있는 ContentPage가 있습니다. 새로운 AboutPage.xaml 및 AboutPage.cs 파일을 추가하고 UI를 사용하여 양식을 편집하기로 결정했습니다. 그래서, 새 파일을 통해 새 페이지를 만들었습니다 ... Forms ContentPage XAML ..... 위에서 언급 한 것처럼 두 파일을 만듭니다.자동 생성 된 XAML.g.cs 파일은 Xamarin Forms PCL 프로젝트에서 컴파일 할 수 없습니다.
AboutPage.cs AboutPage.xaml
결과 파일은 이제이 AboutPage.xaml에게
AboutPage.cs
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace IPSND.Xamarin
{
public partial class AboutPage : ContentPage
{
public AboutPage()
{
InitializeComponent();
}
}
}
... 이런 식으로
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="IPSND.Xamarin.AboutPage">
<ContentPage.Content>
<StackLayout>
<Image Id="ImageLogo" Aspect = "AspectFit"></Image>
</StackLayout>
</ContentPage.Content>
</ContentPage>
봐 괜찮을 것으로 보이고 수업 준비가 포함되었는지 확인했습니다. 네임 스페이스. 그러나 컴파일 할 때 결과 AboutPage.xaml.g.cs 파일은 다음과 같습니다. using 문이 네임 스페이스 내부에 포함되어 있고 파일 맨 위에 포함되어 있지 않은지 확인합니다. 불행히도 이것은 컴파일 할 수 없습니다.
내가 여기서 잘못 했습니까?
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18408
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace IPSND.Xamarin {
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
public partial class AboutPage : ContentPage {
private void InitializeComponent() {
this.LoadFromXaml(typeof(AboutPage));
}
}
}
이
D:\SVN\IPSND.Xamarin\obj\Debug\AboutPage.xaml.g.cs(19,19): Error CS0234: The type or namespace name 'Forms' does not exist in the namespace 'IPSND.Xamarin' (are you missing an assembly reference?) (CS0234) (IPSND.Xamarin)
D:\SVN\IPSND.Xamarin\obj\Debug\AboutPage.xaml.g.cs(19,19): Error CS0234: The type or namespace name 'Forms' does not exist in the namespace 'IPSND.Xamarin' (are you missing an assembly reference?) (CS0234) (IPSND.Xamarin)
D:\SVN\IPSND.Xamarin\obj\Debug\AboutPage.xaml.g.cs(38,38): Error CS0246: The type or namespace name 'ContentPage' could not be found (are you missing a using directive or an assembly reference?) (CS0246) (IPSND.Xamarin)
그래서, 그때 내가이 (가) 자 마린에 사용의 머리를 내 네임 스페이스 (IPSND.Xamarin)의 꼬리를 혼란 것을 어쩌면 생각 다음과 같은 오류가 발생합니다. 양식 네임 스페이스 ... 그래서이 양식 집합 (.cs 네임 스페이스와 XAML 클래스 선언 모두)에서 내 네임 스페이스를 IPSND.Test로 변경했습니다. 불행히도 같은 오류가 발생했습니다.
Jason이 아래 주석에서 지적한 것처럼이 using 문을 사용하는 구성은 허용 될뿐만 아니라이 문서에 따라 here이 생성 된 파일을위한 것입니다. 그래서,이 문제의 핵심은 PCL 라이브러리에서 Xamarin.Forms에 대한 내 참조와 더 관련이있을 것 같습니다 (일종의 오류라고 말함). 위에서 참조한 문서를 사용하여 .csr 파일과 .xaml 파일에 들어가 정확히 일치하도록 만들었습니다 (전혀 사용하지 않고 부분 선언에서 ContentPage의 상속을 사용하지 않았지만 아직 도움이되지 않았습니다.).
실제로 컴파일러 오류가 발생 했나요? using 문은 네임 스페이스 선언 내에서 유효합니다 . – Jason
오, 쓰레기, 거기에 넣었어야했는데 ... 예 ...이 오류가 발생했습니다 ... 어느 m akes sense ... 형식 또는 네임 스페이스 이름 'Forms'가 'IPSND.Xamarin'네임 스페이스에 없습니다 (어셈블리 참조가 누락 되었습니까?) (CS0234) (IPSND.Xamarin). 그래서, 사용법이 중첩되어 있다고 생각하는 것 같습니다. – jaskey
프로젝트 네임 스페이스에 충돌을 일으키는 ".Xamarin"이 포함되어 있다고 생각합니다. – Jason