2012-02-05 1 views
13

속성을 textBox에 바인딩 할 수 있도록 Int32를 String으로 변환하는 변환기를 구현했습니다.'XXX'태그가 XML 네임 스페이스 'clr-namespace : YYY'에 없습니다.

이 변환기는 MyApp.Converters 네임 스페이스에 구현되며 Int32ToStringConverter라고합니다.

그런 다음 내 axml에서 나는 다음과 같이 내 계산기에 대한 참조를 추가

<Window x:Class="MusicaDB.Views.PrincipalView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:i="namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
     **xmlns:converter="clr-namesapce:MyApp.Converters, aseembly=MyApp**"> 

나중에 windows.Resources에서 내가 가진 :

<Window.Resources> 
     <**converter:Int32ToStringConverter** x:Key="Int32ToStringConverter" /> 
</Window.Resources> 

나는 오류가 발생하는 태그 Int32ToString 변환기가 네임 스페이스 MyApp.Converters, assembly = MyApp에 존재하지 않습니다.

로컬 하드 드라이브에 프로젝트 속성이 있습니다. 대상 .NET은 프레임 워크 4.0이고 프레임 워크 4.0 클라이언트 프로필이 아니며 솔루션을 지우고 다시 컴파일하려고하지만 문제가 지속됩니다.

주로이 해결책은 내가 찾은 두 가지이지만 문제를 해결하지 못합니다.

답변

24

세 가지 수정 사항은 여기로 만들려면 :

  1. 없음 공간 ->xmlns:converter="clr-namesapce:MyApp.Converters,aseembly=MyApp"
  2. 없음 맞춤법 ->xmlns:converter="clr-namespace:MyApp.Converters,assembly=MyApp"
  3. 오른쪽 구분 ->xmlns:converter="clr-namespace:MyApp.Converters;assembly=MyApp"

어떻게 뭔가를 사용하기 전에 the reference 읽기에 대한 ? 그 값으로부터 조립체 토큰 분리 문자 인 반면, 그 값으로부터 CLR 네임 스페이스 토큰 분리 문자가 대장이라고

주 (:)이 등호 (=). 이 두 토큰 사이에 사용할 문자는 세미콜론입니다. 또한 선언문의 아무 곳이나 공백을 포함하지 마십시오.

+0

참조 링크가 사라졌습니다. –

+2

@WaldoAlvarez : 그냥 MSDN이 바보 같은 기본값을 사용하는 것입니다. "이 항목은 더 이상 제공되지 않습니다."가 표시되면 "다른 버전"드롭 다운에서 이전 버전을 선택하십시오. –

+0

ahh ok 감사합니다. 더 나은 직접 링크 https://msdn.microsoft.com/en-us/library/ms747086(v=vs.100)를 제공하십시오.aspx –

3

두 가지 가능한 원인이 있습니다. 첫 번째는 첫 번째 별표 표시 줄에서 "어셈블리"의 철자가 잘못되었다는 것입니다. 맞춤법을 변경하면 충분할 수 있습니다. 두 번째 가능성은 Visual Studio에서이

enter image description here

처럼 나타납니다 프로젝트 참조에 MyApp.dll을 추가하지 않은 것입니다.

11

왜 이런 일이 벌어지는 지 탐색하고 있지만 변환기가 주 어셈블리에있는 경우 xmlns : converters 태그에서 assembly =을 제거하면 해당 빌드 오류가 제거되어야합니다.

2

내 경우에는 xmlns:local="clr-namespace:<mydefaultnamespace>"과 동일한 문제가있었습니다. 나는 이것을 포함하는 순서 변경을 해결했다. 나는 그것을 먼저두고 모든 것이 풀렸다. 이상한 행동이지만, 이것이 내 상황에서 발견 한 나의 해결 방법이었습니다.

3

기록 용으로는 ... 비슷한 문제가 발생했습니다. XAML에서 "; assembly = X"부분을 제거하면 제대로 작동합니다.

그러나 이유를 제대로 이해하지 못했습니다.

으로이 블로그에서 제안 : 내 경우 http://zoomicon.wordpress.com/2012/07/02/fix-the-tag-xxx-does-not-exist-in-xml-namespace-clr-namespaceyyy/#comment-7761

+0

분명히, 그것이 같은 어셈블리에 있다면, 넣지 마십시오. 그렇지 않다면 넣으십시오. – BrainSlugs83

0

, 네임 스페이스를 포함 어셈블리가 물리적으로 존재하지 않았다.

빌드 오류가있는 어셈블리의 참조를 확인하고 해당 참조 된 어셈블리의 속성을 살펴 보았습니다.

경로로 이동하여 조립품이 실제로 누락되었음을 발견했습니다. 은 잘못된 것으로 착각하여 내게입니다.

18

이 문제를 해결할 수있는 또 다른 방법은 프로젝트와 라이브러리에서 동일한 버전의 .Net을 사용하지 않는 것입니다.

+0

이것은 매우 도움이됩니다. 필자의 구문이 옳았지만 참조하고있는 새 어셈블리의 프레임 워크 버전을 설정하는 것을 잊었습니다. 감사. –

+1

당신은 생명의 은인입니다. – MetalMikester

+0

더 자세히 설명해 주시겠습니까? 자세한 내용 –

3

모든 대답이 맞습니다. 그리고 모든 것을 시도한 후에 왜 그런 일이 일어 났는지 구성 할 수는 없지만 모든 것이 정상적으로 보인다면 Visual Studio를 다시 시작하십시오.

거의 1 시간을 낭비하고 나에게 도움이되었습니다. 모든 것을 확인했지만 관리로 VS를 다시 시작했습니다.

+0

나는 문자 그대로 약 3 시간 동안 계속하고 있었던 것을 계산하려고 노력하고 있었다! VS를 다시 시작하라는 제안이 트릭을 만들었습니다 !! –

0

다른 프로젝트에있는 경우에만 어셈블 태그를 사용하십시오. 다른 현명한 사용은 네임 스페이스 태그 만 사용하십시오. 나를 위해이 문제가 수정되었습니다

1

Microsoft.mshtml.dll을 사용하고 있고 Windows 10 기념일 에디션으로 업그레이드하거나 제작자 에디션이 나온 경우이 오류가 발생하는 경우는 매우 드문 경우가 하나 있습니다.

발견되지 않는 구성 요소가 들어있는 라이브러리를 완전히 컴파일 할 수 있는지 확인하십시오. 오류 목록 (그리드가 아니라 출력 콘솔)에서 모든 단서를 찾아보십시오.

내 경우에는 Microsoft.mshtml.dll을 HTML 편집기의 일부로 사용하고 있었고 (GAC에서) 등록되지 않았습니다.

다음 기사는 스크린 샷과 함께 설명 :

짧은에서

https://techninotes.blogspot.com/2016/08/fixing-cannot-find-wrapper-assembly-for.html#comment-form

내가 (관리자로) Visual Studio 명령 프롬프트를 실행 한 다음 명령을 실행합니다

cd C:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a 
regasm Microsoft.mshtml.dll 

나는 모호한 말 했는가를 :-) 중요한 점은 중요한 단서가있을 수 있으므로 모든 경고에 묻힐 수있는 오류를 읽는 것입니다.

운영 체제 업데이트가 갑자기 프로젝트를 중단시키는 경우 특히 혼란 스러울 수 있습니다.

관련 문제