2015-01-29 20 views
17

Tôi đang xây dựng một C#/ứng dụng WPF sử dụng VS2013, và tôi có nghĩa lớp sau (trong cùng một assembly của ứng dụng đang chạy):WPF: Tên không tồn tại trong không gian tên

namespace MyNamespace 
{ 
    public class MyKey 
    { 
     public MyKey() { } 
     public string name = ""; 
    } 
} 

Trong MainWindow.xaml tôi có:

<Window x:Class="MyNamespace.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:MyNamespace" 
     Title="MainWindow" Height="350" Width="525" WindowState="Maximized" WindowStyle="None"> 
    <Window.Resources> 
     <local:MyKey x:Key="key" /> 
    </Window.Resources> 
... 

VS giữ báo cáo rằng

Cái tên "MyKey" không tồn tại trong không gian tên "clr-namespace: MyNamespace"

Bất kỳ ý tưởng nào?

P.S. Tôi đã thử các giải pháp sau đây (từ đã được đăng câu hỏi trong stackoverflow) nhưng không ai trong số họ làm việc:

  1. Di chuyển các lớp đến một namespace khác nhau, sau đó sử dụng không gian tên mới trong tài liệu tham khảo XAML
  2. Khởi động lại VS và làm sạch/xây dựng lại giải pháp
  3. làm sạch các giải pháp sau đó đổi tên thư mục của nó sau đó xây dựng các giải pháp một lần nữa
  4. thay đổi tham chiếu đến:

xmlns: local = "clr-namespace: MyNameSpace; lắp ráp ="

Chỉnh sửa: Bổ sung thông tin: Mục tiêu kiến ​​trúc: X64, mục tiêu khung: Net 4.5

+0

Giải pháp của bạn có xây dựng không? – user3596113

+0

Có nó không xây dựng, nhưng với thông báo lỗi tôi đã đề cập – Ibraheem

+0

Tôi cũng nhận được lỗi này đôi khi quá. Nếu tôi xây dựng lại giải pháp của mình, tất cả các lỗi đều biến mất. Tôi thực sự không thể nói tại sao điều này xảy ra, có lẽ đó là vì một số dữ liệu không có sẵn cho VS khi bạn xây dựng giải pháp của mình lần đầu tiên. – user3596113

Trả lời

38

Một giải pháp chung này được biết đến VS lỗi mà bạn chưa chỉ định khi thử đã thay đổi nền tảng mục tiêu xây dựng.

  1. Nếu nền tảng mục tiêu xây dựng hiện tại của bạn là x64, thay đổi thành x86. Nếu hiện tại là x86, hãy đổi thành x64.

  2. Giải pháp làm sạch và xây dựng cho nền tảng mục tiêu mới.

  3. Đổi lại về nền tảng đích mong muốn và xây dựng lại.

+0

Đã hoạt động! Cảm ơn rất nhiều :) – Ibraheem

+0

@Gordon - Bạn có liên kết đến lỗi VS đã biết không? Chỉ tò mò thôi. –

+2

[Ở đây] (https://social.msdn.microsoft.com/Forums/en-US/3c641040-7726-4746-ba61-9cd8811fac99/vs2010-designer-errors-with-x64-configuration?forum=vswpfdesigner) là một cuộc thảo luận về lỗi trên diễn đàn MSDN. Một vài áp phích tham khảo và trích dẫn một báo cáo lỗi cụ thể. –

2

Tôi gặp vấn đề tương tự trong ấn bản VS2012 express. Giải quyết vấn đề bằng cách sử dụng lệnh

"WDExpress/ResetSettings" trong dấu nhắc lệnh vs2012.

https://stackoverflow.com/a/33706647/4855197

1

Một giải pháp khả thi là bằng cách loại bỏ tất cả các .dll tập tin từ gỡ lỗiphát hành thư mục.

Bởi vì đôi khi bạn tham khảo dự án, nó đề cập đến các dll đã được tạo trước, ngay cả khi bạn đang chạy dự án của mình ở chế độ gỡ lỗi.

Xóa tất cả các tệp khỏi gỡ lỗiphát hành thư mục và xây dựng lại dự án đó, bây giờ thêm tham chiếu của dự án này vào nơi bạn muốn. Làm việc hoàn toàn tốt đẹp về kết thúc của tôi.

0

Tôi gặp sự cố tương tự. Những gì cố định nó cho tôi đã thay đổi các thuộc tính xây dựng của dự án, được thêm vào như là một tham chiếu. Hóa ra rằng "mục tiêu nền tảng" đã được thay đổi trong quá khứ. Đặt nó thành "CPU bất kỳ" và xây dựng lại nó đã giải quyết được lỗi.

Các vấn đề liên quan