Visual Studio 2010 SP1에서 새 프로젝트를 만들고 “WPF 응용 프로그램”을 선택하고 생성 된 응용 프로그램을 만들려고하면 오류가 발생합니다.
현재 컨텍스트에 ‘InitializeComponent’라는 이름이 없습니다.
오늘 아침에 현재 프로젝트를 만들려고 할 때 비슷한 오류가 발생했습니다. 어제 컴파일하고 실행하는 데 아무런 문제가 없었습니다.
새 프로젝트를 만들고 프로젝트를 컴파일 할 때마다 오류가 발생했습니다. 방금 프로젝트를 동료에게 보냈으며 오류없이 컴파일했습니다.
뭐가 잘못 되었 니?
답변
나는 이것을 몇 번 겪었고 그 원인을 잊어 버렸습니다. 파일 뒤에있는 코드에서 네임 스페이스의 이름을 바꾸었지만 XAML에서는 그렇지 않았습니다.
따라서 동일한 작업을 수행했는지 확인하십시오.
네임 스페이스 와 클래스 이름은 부분 클래스의 모두 부분이기 때문에 일치 할 필요
namespace ZZZ
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow
{
//...
}
}
<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">
답변
.xaml 파일의 빌드 작업도 “페이지”로 설정해야합니다. 프로젝트간에 xaml 파일을 이동할 때이 설정이 손실됩니다 (최소한 VS 2010).
답변
디버그 모드에 오류가 없지만, 사람들을 위해 할이 릴리스 모드에서 지정된 오류가 (아직 프로젝트가 벌금을 실행), 여기에 시도하는 뭔가 간단하다 :
- 문제가있는 xaml.cs 파일에 해당하는 XAML 파일을 엽니 다.
- 어딘가에 공간을 추가하는 등의 편집
- 파일을 저장하고 닫습니다
이 방법은 VS 2015에서 저에게 효과적이며 다른 사용자, 2017 및 2019에 따르면
답변
- 솔루션 디렉토리로 이동
- \ obj 폴더를 삭제하십시오.
- 솔루션 재 구축
리팩토링 중에 일부 파일 / 폴더의 이름을 바꾸고 이전 * .g.cs 파일을 다시 생성해야하는이 오류가 발생했습니다.
답변
이에 대한 구체적인 이유가 있으며 프로젝트 설정에 있습니다. 일반적으로 .NET 2.0 클래스 라이브러리 또는 프로젝트에 WPF 컨트롤 / 창을 추가하려고 할 때 발생합니다. 이 오류의 원인은 프로젝트가 WPF 컨트롤 또는 창을 빌드하고 있다는 것을 알지 못하므로 C # 2.0 프로젝트로 빌드하려고하기 때문입니다.
해결 방법은 .csproj 파일을 편집하는 것입니다. 문제를 일으키는 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 “프로젝트 언로드”를 선택하십시오. 언로드 된 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 “.csproj 편집”을 선택하십시오. .csproj 파일이 열리고 XML을 볼 수 있습니다. 다음 줄을 찾으십시오.
<Import Project=…..
파일의 끝 부분에 있으며, 가지고있는 유일한 줄은 아마도
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Visual Studio에서 프로젝트를 .NET 2.0 프로젝트로 빌드하도록 지시합니다. 우리가하고 싶은 것은 Visual Studio에 이것이 실제로 WPF 프로젝트임을 알리는 것이므로 다음 줄을 추가해야합니다.
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
이 줄은 Visual Studio에 프로젝트를 WPF 프로젝트로 빌드하도록 지시합니다. 이제 .csproj 파일 하단은 다음과 같아야합니다.
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
.csproj 파일을 저장하고 솔루션 탐색기에서 마우스 오른쪽 단추로 클릭 한 다음“프로젝트 다시로드”컴파일을 선택하면 완료됩니다.
답변
이것은 실수로 xaml 정의에서 클래스 참조를 삭제했을 때 발생했습니다.
나는 교체했다
<Window x:Class="myapp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
이것으로 첫 줄 :
<RibbonWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
나는 이것이 원래 질문에 대한 대답이 아니라는 것을 알고 있지만 (프로젝트가 다른 컴퓨터에서 빌드되기 때문에) 오류 메시지는 동일 하므로이 상황을 가진 누군가를 도울 것입니다.
답변
다른 프로젝트에서 클래스를 가져 오거나 xaml 파일의 경로 또는 xaml 또는 .cs 파일 뒤의 네임 스페이스를 변경하면이 오류가 발생할 수 있습니다.
하나 : 새 프로젝트에있는 것과 다른 네임 스페이스가있을 수 있습니다.
namespace TrainerB.MVC.Forms
{
public partial class AboutDeveloper : ContentPage
{
public AboutDeveloper()
{
InitializeComponent();
}
}
}
가져온 파일의 네임 스페이스가 이전 프로젝트 이름 : “TrainerB” 로 시작하지만 새 프로젝트의 이름이 다를 수 있으므로 .xaml 파일 및 뒤에 .cs 파일.
두:
.xaml 파일의 속성을 다음과 같이 변경하십시오.
빌드 조치 : 임베디드 자원
사용자 지정 도구 : MSBuild : UpdateDesignTimeXaml
