현재 컨텍스트에 'InitializeComponent'라는 이름이 없습니다.


383

Visual Studio 2010 SP1에서 새 프로젝트를 만들고 "WPF 응용 프로그램"을 선택하고 생성 된 응용 프로그램을 만들려고하면 오류가 발생합니다.

현재 컨텍스트에 'InitializeComponent'라는 이름이 없습니다.

오늘 아침에 현재 프로젝트를 만들려고 할 때 비슷한 오류가 발생했습니다. 어제 컴파일하고 실행하는 데 아무런 문제가 없었습니다.

새 프로젝트를 만들고 프로젝트를 컴파일 할 때마다 오류가 발생했습니다. 방금 프로젝트를 동료에게 보냈으며 오류없이 컴파일했습니다.

뭐가 잘못 되었 니?


3
이 사용자 "오류"는 해결하기 쉬운 것처럼 보입니다. 간단한 x : Class 적절한 정의입니다. 모든 것이 괜찮을 때까지 개발자는 더 많은주의를 기울여야하지만이 오류가 아니라 동일한 오류 메시지가있는 고스트 오류는 무엇입니까? 나는 2012 년부터 많은 부두 해결 방법을 읽었습니다. VS에서 훨씬 명확한 오류 메시지와 OF COURSE가 동일한 메시지로 고스트 오류에 대한 버그 수정을 도울 것입니다. 개발자는 2012 년부터 파일, 프로젝트에서 빌드 구성 변경, 프로젝트 복사-붙여 넣기, App 폴더에서 파일 삭제, VS 다시 시작 등을 수행하고 있습니다. Bravo MS ... 4 년 동안 버그가 계속 남아 있습니다!
juagicre

2
이 질문의 미래 독자들 에게이 문제는 가능한 많은 출처가있는 것 같습니다. 필자의 경우 처음 몇 가지 답변은 도움이되지 않았지만 아래 답변 중 하나가 정확했습니다.
MOnsDaR

@MOnsDaR Designer 파일의 네임 스페이스가 문제였습니다.
Ctrl S

이것은 많은 것들 (네임 스페이스 이름 변경 \ 페이지 유형-MSBuild)으로 인해 발생할 수 있지만 결국 상속 된 프로젝트에서 원인에 대한 해결책을 찾았습니다. .csproj 파일에서 "ToolsVersion"을 4에서 15 (VS 2017)로 변경해야했습니다.
MrMikeJJ

답변:


737

나는 이것을 몇 번 겪었고 그 원인을 잊어 버렸습니다. 파일 뒤에있는 코드에서 네임 스페이스의 이름을 바꾸었지만 XAML에서는 그렇지 않았습니다.

따라서 동일한 작업을 수행했는지 확인하십시오.

네임 스페이스클래스 이름은 부분 클래스의 모두 부분이기 때문에 일치 할 필요

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">

10
고마워 션 이 답변을 여기에 게시하기 위해 여기에 왔지만 이미 저를 이겼습니다. 이것은 정확히 일어난 일이며 내 문제를 해결했습니다. 귀하의 의견은 15 분을 절약했을 것이므로 차트보다 높아야합니다.
매그넘

2
클래스 이름이 같지 않으면 같은 오류가 발생합니다.
reggaeguitar

2
이것이 답입니다. 왜 그것이 선택되지 않았는지 확실하지 않지만, 이것이 바로 Xamarin.Forms를 코딩하는 데 도움이되었습니다.
Marcus Shockley

1
리팩토링시 주석과 문자열을 포함시켜야합니다 (Visual Studio 2015)
Gabriel GM

3
Azure에서 다운로드 한 "빠른 시작"프로젝트를 사용하는 저 (Xamarain.Forms에서)는 xmlns : x = " schemas.microsoft.com/winfx/2009/xaml "과 x : Class 사이의 공백 / 들여 쓰기 였습니다. 문제. 나는 이것을 삭제하고 다시 타이핑했다.
James

241

.xaml 파일의 빌드 작업도 "페이지"로 설정해야합니다. 프로젝트간에 xaml 파일을 이동할 때이 설정이 손실됩니다 (최소한 VS 2010).


11
이것은 나에게 일어난 일이었습니다. 감사!
Ignacio Soler Garcia 9

3
복사 붙여 넣기 후 xaml 빌드 조치가 페이지에서 컨텐츠로 변경됩니다.
Roberto

4
Visual Studio 2012에서 여전히 발생합니다 (업데이트 2)
gumo

8
여전히 Visual Studio 2013에서 발생
Chris Ray

7
진심으로 ... 왜 Microsoft? 나를 미워합니까?
qwertoyo

106

디버그 모드에 오류가 없지만, 사람들을 위해 할이 릴리스 모드에서 지정된 오류가 (아직 프로젝트가 벌금을 실행), 여기에 시도하는 뭔가 간단하다 :

  1. 문제가있는 xaml.cs 파일에 해당하는 XAML 파일을 엽니 다.
  2. 어딘가에 공간을 추가하는 등의 편집
  3. 파일을 저장하고 닫습니다

이 방법은 VS 2015에서 저에게 효과적이며 다른 사용자, 2017 및 2019에 따르면


3
당신은 오늘 나의 영웅입니다. 감사합니다
Peter pete

14
미친 듯이, 이것은 VS2015와 함께 나를 위해 일했습니다. 그리고 모든 XAML 파일의 모든 오류를 수정했습니다. 이것은 정말로 WTF 순간입니다.
William Denman

5
Dang, 나는 다시 이것에 의해 화상을 입었다. 다행히도 나는 이미 투표하고 의견을 밝힌 것과 동일한 답변을 찾았습니다. 나는 정말로 이것을 모니터의 포스트잇 메모로해야한다.
William Denman

3
VS2017에서도 동일하며 문제가 해결되었습니다.
한스

2
아직도 VS2019에서 작동합니다 ...
soulflyman

29
  1. 솔루션 디렉토리로 이동
  2. \ obj 폴더를 삭제하십시오.
  3. 솔루션 재 구축

리팩토링 중에 일부 파일 / 폴더의 이름을 바꾸고 이전 * .g.cs 파일을 다시 생성해야하는이 오류가 발생했습니다.


나는 같은 문제가있는 것처럼 보이지만 이것은 나를 위해 작동하지 않았다.
LuckyLikey

xaml이와 x:Class일치 하는지 확인한 후 수행하십시오 Namespace.Class.
Jake

tnx. 이 간단한 트릭은 나를 위해 그것을했습니다.
길 아 디노

26

이에 대한 구체적인 이유가 있으며 프로젝트 설정에 있습니다. 일반적으로 .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 파일을 저장하고 솔루션 탐색기에서 마우스 오른쪽 단추로 클릭 한 다음“프로젝트 다시로드”컴파일을 선택하면 완료됩니다.


1
나는이 질문을 쓰기 전에 이것을 시도했지만 도움이되지 않습니다. 새 프로젝트를 컴파일 할 수 없지만 동료가 할 수있는 것이 이상하다고 생각합니다.
user876402

1
나는 그것을 시도했지만 도움이되지 않았다. 새 가져 오기를 추가하면 새 경고가 발생하지만 (아래 참조) 원래 오류가 계속 있습니다. "C : \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.WinFX.targets"를 다시 가져올 수 없습니다. "C : \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.NETFramework.targets (76,3)"에서 이미 가져 왔습니다. 빌드 작성 오류 일 가능성이 높습니다. 이 후속 가져 오기는 무시됩니다. "
user316117

나는 또한 그것을 시도했지만 작동하지 않았다 ...?
Sizons

감사합니다. 이것은 내가 물려받은 프로젝트에서 나를 위해 고쳤습니다.
MrMikeJJ

22

이것은 실수로 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">

나는 이것이 원래 질문에 대한 대답이 아니라는 것을 알고 있지만 (프로젝트가 다른 컴퓨터에서 빌드되기 때문에) 오류 메시지는 동일 하므로이 상황을 가진 누군가를 도울 것입니다.


이것은 정확히 내 문제는 아니지만 지역화하는 데 도움이되었습니다. 나중에 클래스 이름이없는 네임 스페이스를 가졌습니다
Rivenfall

이것은 나를 위해 일했습니다. 감사합니다
Sinaesthetic

이것은 내 문제를 찾을 도움이, 내 경우에는 내가 X 누락되었습니다 클래스 라인을 나를 위해 그것을 고정이 추가
APC

18

다른 프로젝트에서 클래스를 가져 오거나 xaml 파일의 경로 또는 xaml 또는 .cs 파일 뒤의 네임 스페이스를 변경하면이 오류가 발생할 수 있습니다.

하나 : 새 프로젝트에있는 것과 다른 네임 스페이스가있을 수 있습니다.

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

가져온 파일의 네임 스페이스가 이전 프로젝트 이름 : "TrainerB" 로 시작하지만 새 프로젝트의 이름이 다를 수 있으므로 .xaml 파일 및 뒤에 .cs 파일.

두:

.xaml 파일의 속성을 다음과 같이 변경하십시오.

빌드 조치 : 임베디드 자원

사용자 지정 도구 : MSBuild : UpdateDesignTimeXaml

Xaml 파일 속성

Xaml 네임 스페이스 수정 01

Xaml 네임 스페이스 수정 02


세상에! 그 해결책에 정말 감사합니다. 나는 거기에서 찾은 모든 솔루션을 테스트했지만 아무 효과가 없습니다. 트릭은 xaml파일 의 속성에 있었습니다. +1
IgniteCoders

16

xaml 파일에서 확인하십시오

<Page x:Class="Project1.Page1" ...

'Project1'이름과 'Page1'이름과 일치


이것은 내 문제를 해결했습니다.
8

16

Designer 파일을 확인하십시오 .

나는이 같은 문제가 있었다. 필자의 경우 원인은 namespacefor FileName.Designer.csFileName.cs에namespace 사용 된 (올바른) 것과 일치하지 않았기 때문 입니다.

변화 namespaceFileName.Designer.cs은 그와 일치하는 FileName.cs 즉시 문제를 해결했다.


14

나는 이것을 가지고 있습니다 (그러나 그것은 내 잘못이었고 코드를 복사하여 붙여 넣은 후에 발생했습니다). 네임 스페이스가 XAML과 코드 뒤에서 일치하지 않을 때 발생할 수 있습니다.

EG

<UserControl x:Class="DockPanel.TreeView" />

뒤에 코드는

namespace NotDockPanel

이로 인해 내 디자이너에 잘못된 네임 스페이스가 있음을 알게되었습니다. 감사!
Ctrl S

13

usercontrol의 이름을 바꾸는 동안이 문제가 발생했습니다. 내가 고 쳤던 방법은 InitializeComponent를 주석 처리하고 모든 이름이 올바른지 확인하고 (xaml 및 코드 숨김) 프로젝트를 빌드하고 InitializeComponent의 주석 처리를 제거한 다음 다시 빌드하는 것이 었습니다. 이 문제에 대한 몇 가지 원인 / 해결책이있을 수있는 것처럼 들리지만이 방법으로 저에게 도움이되었습니다.


1
이름을 바꾸지 않았습니까? 그러나이 솔루션은 저에게 효과적이었습니다. obj 폴더에 * .g.cs 및 * .gics가 누락되어 주석 처리하고 프로젝트를 빌드하면 누락 된 파일이 생성되었습니다. 어떻게이 상태에 도달했는지 확실하지 않습니다.
finlaybob

11

위의 답변 중 어느 것도 나를 위해 일하지 않았습니다. 나는 그것들을 제외한 모든 것을 시도했다. 그러나 이상한 이유로 Visual Studio 2015의 크로스 플랫폼 프로젝트에서 작동했습니다.

  1. 솔루션 탐색기에서 문제를 일으키는 프로젝트를 마우스 오른쪽 단추로 클릭하십시오. 팝업 메뉴에서 추가-> 클래스를 선택하십시오.
  2. 크로스 플랫폼-> Forms Xaml 페이지를 선택하십시오. pretty Page1.cs 표준 이름을 유지하고 추가를 클릭하십시오.
  3. 어떤 이유로 이전 InitializeComponent () 문제가 어떻게 사라 졌는지 확인하십시오.
  4. 새로 만든 Page1.cs를 삭제하고 Visual Studio가 제대로 작동하는 것처럼 프로그래밍을 계속하십시오.

이것은 나를 위해 일했습니다. InitializeComponent ()가 실패하기 시작했을 때 가지고 있던 usercontrol의 복사 및 붙여 넣기 및 이름을 바꿨습니다.
라파엘 벤츄라

이 픽스를 어떻게 넘어 갔습니까? 나는 다른 모든 것을 시도했고 이것이 효과가있었습니다. VS 2017을 사용하므로 현재 문제가 있습니다.
blearyeye

좋아, 이것은 나를 위해 일했다. 대단히 감사합니다
IZI

9

네임 스페이스가 일치해야한다는 위의 답변에 동의합니다. 그러나 네임 스페이스가 일치하는 곳에서 이와 같은 문제가있었습니다.

수정하려면 XAML의 네임 스페이스를 INCORRECT 네임 스페이스로 변경하고 저장 한 다음 다시 올바른 네임 스페이스로 변경했습니다. 짜잔!


나는 정답을 주석으로이를 추가 한 것입니다,하지만 난 :( 그렇게 할 수있는 담당자가없는
heights1976을

감사합니다! 모든 종류의 일을 시도해보고 미친 듯이 나를 위해 일했습니다. 내 솔루션은 원래 오류없이 빌드 한 다음 PC가 잠시 동안 잠 들어 다시 시도하고 오류가 발생했습니다. 수면 모드와 관련이 있습니까?
JeremyB

나는 같은 문제와 해결책을 가지고 있었다. IntelliSense와 관련이 있다고 생각합니다. xaml에서 네임 스페이스를 변경하면 IntelliSense db의 관련 부분이 업데이트되었을 수 있습니다. 이것은 단지 추측 일뿐입니다.
FishySwede

8

Xamarin Forms를 사용하고 XAML 파일을 이동하면 파일의 "빌드 작업"이 변경됩니다. Xamarin Forms에는 "빌드 작업 = 내장 리소스"가 필요합니다.

Visual Studio에서 "빌드 조치"를 적용하십시오.

Select the XAML file -> Properties -> Build Action = Embedded Resource


부인 / 부인을위한 만세!
naspinski

7

위의 모든 제안을 시도하십시오. 성공하지 않고 너무 노력하면 더 쉬운 방법을 찾으십시오. 새 page.xaml만든 다음 새 클래스의 코드를 복사 하고 문제가있는 클래스 XAML을 삭제하십시오 . 더 많은 시간을 보내지 마십시오.


7

전체 솔루션을 언로드 한 다음 다시로드하십시오. 그런 다음 솔루션을 다시 빌드하십시오. 이것은 나를 위해 문제를 해결했습니다.


고마워요!
Izion 2016 년

6

이 오류의 또 다른 일반적인 원인은 다음과 같은 일을 한 경우입니다.

  1. 프로젝트에서 폴더를 마우스 오른쪽 버튼으로 클릭하여 새 UserControl을 만듭니다. 이렇게하면 폴더의 네임 스페이스에있는 사용자 컨트롤에서 파생 된 클래스 및 xaml 파일이 생성됩니다.

  2. 그런 다음 실제로 코드 구성을 위해 폴더를 사용하기 때문에 클래스의 네임 스페이스를 변경하기로 결정했습니다. x : Class 속성은 자동으로 업데이트되지 않으므로 존재하지 않는 클래스를 검색합니다. "x : 클래스 유형을 이름이없는 bla.blaa.blaaa에서 찾을 수 없습니다"와 같은 더 나은 오류 메시지를 사용할 수 있습니다.


5

이 문제에 대한 또 다른 해결책은 XAML의 속성-> 빌드 작업을 포함 리소스에서 다른 것으로 변경하고 저장 한 다음 다시 포함 리소스로 다시 변경하는 것입니다. 오류가 사라집니다.


그것은 두 번 일했다;)
Flou

4

나는 이것이 다른 원인으로 답변되었다는 것을 알고 있지만 이것은 매우 인기있는 게시이며 클래스 라이브러리와 동일한 문제가 발생했습니다. 이 경우 내 네임 스페이스가 변경되어 (이 게시물 에서 답변 됨 ) 컴파일러에서 InitializeComponent () 메서드를 정의하는 Window.gics를 다시 작성할 수 없다는 것이 밝혀졌습니다 . 클래스 라이브러리에 csproj 파일에서 WPF 프로젝트의 ProjectTypeGuid 값이 누락 되었기 때문에 실패했습니다. 이에 대한 지침은 여기여기에 있습니다 . 다른 사람이 같은 문제를 겪을 경우를 대비하여 공유하겠다고 생각했습니다. 이 경우 네임 스페이스를 변경하는 것만으로는 충분하지 않습니다.


3

Nuget 패키지 제거 프로그램이 App.xaml의 <Application> 요소에서 모든 속성을 제거했기 때문에 이런 일이 발생했습니다. 여기에는 응용 프로그램 클래스 이름을 지정하는 x : Class 특성이 포함되었습니다. 따라서 InitializeComponent () 메서드를 포함하는 부분 클래스는 생성되지 않았습니다.

App.xaml을 소스 제어 사본으로 되돌려 서 문제를 해결했습니다.


x : Class 속성이 없어서 같은 오류가 발생했지만 Nuget과 관련이 없습니다. 어쩌면 시각적 스튜디오 마술과 같은 방식으로 사라졌습니다.
Ismail Degani

3

이것은 나를 위해 해결했습니다.

App.xaml 파일의 리소스를 주석 처리했습니다.

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <!--<ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>-->
  </Application.Resources>
</Application>

빌드 오류를 해결하기 위해 thiis를 다시 주석 처리합니다.

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

조금 더 깊이 파고 들자 {Project} \ obj \ debug의 app.g.cs 파일에는 리소스가 주석 처리 된 상태에서만 다음이 포함되어 있음을 알았습니다.

/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocater = new System.Uri("/MyApp;component/app.xaml", System.UriKind.Relative);

    #line 1 "..\..\..\App.xaml"
    System.Windows.Application.LoadComponent(this, resourceLocater);

    #line default
    #line hidden
}

3

인터넷에서 이것을 찾는 사람들을 위해. 컴파일이 있으면 Windows.csproj 파일을 확인하십시오. 2 개의 항목이 있어야합니다

<Page Include="YourFile.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>

<Compile Include="YourFile.xaml.cs">
  <DependentUpon>YourFile.xaml</DependentUpon>
</Compile>

내 csproj에서 나는 <DependentUpon>YourFile.xaml</DependentUpon>어떤 이유로 누락 되었고 이것이 나를 위해 고쳐진 것입니다!
Isaac Baker

3

네임 스페이스가 올바른 경우에도 동일한 오류가 발생합니다.

응용 프로그램을 닫고 다시여십시오 .

이것은 당신의 문제를 해결할 수 있습니다


비주얼 스튜디오를 열고 닫는 건가요?
LuckyLikey

때로는 XDesProc.exe (Microsoft Visual Studio XAML UI Designer)가 Visual Studio를 제대로 작동하지 않고 xaml 파일을 제대로로드하지 못할 수 있습니다. 따라서 Visual Studio를 다시 시작하면 문제가 해결되었습니다. 작업 관리자에서 프로세스로 이동하여 Visual Studio를 다시 시작하지 않고도 해당 프로세스 만 중지 할 수 있습니다.
Syed Siraj Wajeed

VS2017에서 이것을 발견했습니다. 나는 다른 모든 것을 바꾸었고 네임 스페이스는 모든 곳에서 정확했지만 InitializeComponent () 호출에는 오류가 있었고 xaml.cs 파일의 부분 키워드에는 "부분 클래스에는 하나의 파일 만 있습니다"와 같은 경고가있었습니다. 나는 솔루션을 닫았다가 다시 열었고이 두 가지 문제가 스스로 해결되었음을 발견했습니다.
Steve Crane

3

일부 작업 후에는 .cs 파일의 네임 스페이스와 .xaml 파일의 네임 스페이스가 다를 수 있습니다 (xaml에서 x : Class = "namespace.yourType"참조).

그것들을 동일하게 수정하십시오.


3

"시작 개체"가 (설정되지 않음)이 오류를 일으키는 것으로 나타났습니다.

"시작 개체"(설정되지 않음)


질문에 언급 된 다른 모든 세부 사항은 동일합니까?
marklark

2
예외가 어떻게 나타나는지에 대한 질문이 명확하지 않았기 때문에 정확한 세부 사항은 정확하지 않습니다. 그러나 근본적인 증상은 동일하므로 내 대답에 아무런 문제가 없습니다. 내 의도는 답변 / 댓글이 도움이되지 않아 대화에 추가하는 것이 었습니다. 나는 종종 설명이 아닌 컴파일 오류에 대해 지식 기반에 추가하려고했습니다.
Rock

1
감사! 내 문제를 해결했다! MainWindow.xaml 을 디렉토리 로 이동 하면 주어진 옵션 ( Startup object )이 자동으로 재설정 된 것 같습니다 . rootView
AlexMelw

3

이것이 누락 된 'InitializeComponent'에 관한 문제를 해결하는 스레드 인 것처럼 보이므로 여기에 내 대답을 포함시킬 것입니다.

나도이 문제를 겪고 있었고 내가 찾을 수있는 모든 포럼과 Google이 찾을 수있는 다른 모든 포럼에서 찾은 모든 것을 시도했지만 아무도 나를 위해 문제를 해결하지 못했습니다. 두 시간 동안 모든 것을 시도한 후 마침내 문제가 무엇인지 알아 냈습니다. 설치.

우리 프로젝트에서는 MahApps의 Metro 컴포넌트를 사용하고 있습니다 . 나에게 문제를 일으키는 견해는 다음과 같이 MetroWindow에서 상속받은 견해였습니다.

<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      ... >

이제 정적 리소스를 다음과 같이 정의했습니다.

<Controls:MetroWindow.Resources>
    <prop:Resources x:Key="LocalizedStrings"/>
    ...
</Controls:MetroWindow.Resources>

그것이 UserControl내가 다른 모든 관점 에서 의 리소스를 정의한 방법 이므로, 이것이 효과가 있다고 가정했습니다.

그러나 Controls:MetroWindow! 다음과 같이 리소스 정의가 절대적으로 필요했습니다.

<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <prop:Resources x:Key="LocalizedStrings"/>
        ...
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

그래서 요약하자면 내 문제는 <ResourceDictionary>태그 가 누락되었습니다 . 나는 이것이 왜 'InitializeComponent'오류를 일으켰는지 알지 못하고 이상하게도 내 모든 기계에서 오류를 일으키지 않았지만 그것이 내가 고쳐 놓은 방법입니다. 이것이 도움이되기를 바랍니다 (이 문제가 발생하는 나머지 0.001 %).


2

방금이 문제가 발생하여 프로젝트가 네트워크에 저장된 사용자 폴더에 저장되어 네트워크가 일시적으로 중단 된 것으로 나타났습니다. 나는 빌드를했다; 내 파일이 편집기 외부에서 수정되었다고 불평했지만 (파일 잠금이 막혔습니다) InitializeComponent()메소드 와 관련된 오류를 제거하여 정상적으로 빌드되었습니다 .

BTW, 궁금한 경우 네트워크 드라이브에서 무언가를 개발하는 것은 좋지 않습니다. .NET의 관리 코드를 활용하려고 할 때 특히 문제가됩니다. 내 경험상, 그것은 당신이 만들 때마다 놀라게합니다. 이 작은 버리기 프로젝트를 적절한 폴더에 넣는 것을 잊어 버렸고 가격을 지불하게되었습니다.


2

또 다른 가능한 설명은 x86에 대해 작성하고 있다는 것입니다. 솔루션을 마우스 오른쪽 단추로 클릭하고 구성 관리자를 선택하십시오. CPU 대신 x86을 사용하고 있는지 확인하십시오.


2

그래서 이것은 오래된 질문이라는 것을 알고 있지만 비슷한 문제가 있습니다. VS2012를 사용하여 프로젝트를 만들 수 있었지만 명령 줄에서 msbuild를 사용하지 않았습니다. .proj 파일로 이동하여 기본 "PropertyGroup"섹션에 "ProjectTypeGuids"에 대한 레코드가없는 것을 확인 했으므로 다음을 추가했습니다.

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

WPF의 프로젝트 GUID입니다. 그런 다음 UserControl을 삭제하고 다시 추가하고 작동하기 시작했습니다. 마지막 단계를 수행해야할지 확실하지 않지만 지금은 효과가 있습니다.


2

.xaml을 복사 한 후 어떤 이유로 인해 프로젝트간에 .cs이므로 빌드 동작이 때때로 변경됩니다. .xaml의 빌드 작업이 페이지인지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.