Could not load file or assembly 'Project name'

안녕하세요.

무엇을 하고자 하는지

현재 xaml에다가 d:DataContext로 viewmodel을 걸어주려고 하는데요.

현재 작성한 코드 중 문제가 되는 부분

XDG0062 : Could not load file or assembly ‘Project name, Version 1.0.0.0, Culture=neutal, PublicKeyToken=null’. 지정된 파일을 찾을 수 없습니다.

라는 오류 메시지를 접하고 있습니다.

위의 상황에서도 그렇고 다른 namespace를 가져와서 쓰려고 하면 저 오류 메시지가 출력되는데요. 실행 시, 기능상에는 문제가 없습니다. 아래는 프로젝트 구조와 불러오는 namespace 이미지입니다.

<Window x:Class="LOWAJO.Main"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:viewmodels="clr-namespace:LOWAJO.MVVM.ViewModels" 
        d:DataContext="{d:DesignInstance Type=viewmodels:MainViewModel}"
        x:Name="MainDock"
        mc:Ignorable="d"
        >
<!-- Content -->
</Window>
namespace LOWAJO.MVVM.ViewModels
{
    public class MainViewModel : ViewModelBase
    {
       //...
    }
}

image

프레임워크는 net6.0이고, IDE는 visual studio 2022를 사용하고 있습니다.

기대하는 동작

오류 메시지를 해결했으면 좋겠습니다.

노력

구글링을 하니까, 주로 위의 오류 메시지는 주로 다른 프로젝트나 dll을 참조할 때, 참조 버전이 상이하거나 빌드 시, 프로젝트를 로컬에다가 복사하는 것에 따라 이 오류 메시지를 해결한다는 것을 접할 수 있었는데요.

위의 해결책이 저와 맞지 않았던 이유는 저는 nuget에서 다른 라이브러리를 설치하거나, 다른 프로젝트를 참조하여 사용하지 않아 저의 경우와 맞지 않는다고 생각됩니다.

현재 프로젝트 전체 코드는 아래 링크에 있습니다.
프로젝트 코드

4개의 좋아요

프로젝트를 클론 해 컴파일을 해봤는데, 관련 오류가 발생하지 않습니다. XAML 디자이너에서도 에러나 경고 표시가 없고요. 바인딩된 속성의 코드로도 잘 이동도 됩니다.

혹시 해당 오류를 어디서 확인할 수 있을까요?

4개의 좋아요

d:로 시작하는 것은 mc:Ignoable 때문에 결과물에 영향을 주지 않습니다.
그래서 실행에는 문제가 없을 거에요.

xaml 상에서 나타나는 오류에서 “오류가 날 이유가 없는데 왜 뜨지?” 싶은 것들 중 다수가 일시적인 버그성 오류인 경우가 많습니다.
이때는 그 xaml이 있는 프로젝트를 빌드하거나 VS를 재시작하면 해결되는 경우가 있습니다.

3개의 좋아요

@dimohy 저는 동일한 에러가 발생하네요.

image

d:DataContext 에러 내용

XDG0062 : Could not load file or assembly ‘Project name, Version 1.0.0.0, Culture=neutal, PublicKeyToken=null’. 지정된 파일을 찾을 수 없습니다.

@helpandplay 프로젝트 보면 LOWAJO 또는 Lowajo 대소문자가 각각 다른 네임스페이스가 있어서 이 문제인가 싶어서 이것 저것 해봤는데 잘 안고쳐지네요. :pensive:

프로젝트 다시 만드셔서 해보시면 잘 될 것 같아요!

3개의 좋아요

코드를 내려받아 자세히 살펴봤는데 Platformx86, x64는 안뜨지만 ARM64로 설정할 때 나타나네요.
AnyCPUARM64로 바인딩되어 있어서 AnyCPU도 똑같이 저 오류가 나타날거에요.

이런 경우는 처음이라 잘 모르겠네요… :thinking:

5개의 좋아요

프로젝트를 재 생성해서 한 번 다시 만들어 보는 방법으로 접근해보겠습니다. 시간 내서 답변 주셔서 감사합니다.

2개의 좋아요

이러면 더 혼란스럽네요. 제가 본문에 언급한 오류를 접할 때는 x64로 빌드를 했을 때, 오류를 접했습니다. 오늘 다시 프로젝트를 재생성해서 빌드해보고 글에 결과를 기록해놓겠습니다.

3개의 좋아요

namespace 수정하기

우선 원인을 파악하는 것이 중요하다고 생각하였습니다.
프로젝트를 재생성하지 않고, namespace와 프로젝트 이름이 일치하도록 텍스트 편집기를 이용해서 수정을 하였습니다.

결과

namespace로 인한 문제의 발생은 아닌거 같았습니다. 정확히는 프로젝트 이름과 namespace의 이름이 굳이 같지 않아도 위 현상과는 무관합니다.

구성 관리자 수정하기

기존에는 x64로 빌드를 했는데, 위에서 다른 분들이 언급한 것들에 대해 관련이 있겠다 생각했습니다.

x86으로 변경

image

결과

위같이 설정을 변경하고 빌드시, 결과는 동일하게 오류가 출력됩니다.

프로젝트 다시 만들기

동일한 코드로 프로젝트를 다시 만들고 x64로 빌드를 해보았습니다.

결과

오류 없이 빌드가 잘 됩니다.

결론

프로젝트를 생성했을 때의 이름과 프로젝트를 진행하면서 이름을 바꿨던 것들이 충돌이 일어나면서 인식이 되지 않는 문제로 판단이 됩니다. 앞으로는 이름을 변경하지 않고, 이름을 변경할 일이 있으면 삭제하고 새로 만드는 방법으로 진행을 해야할 거 같습니다.

3개의 좋아요