Tên không tồn tại trong lỗi không gian tên trong XAML


125

Sử dụng VS2012 làm việc trên ứng dụng VB.NET WPF. Tôi có một ứng dụng hướng dẫn MusicPlayer đơn giản mà tôi đang sử dụng để học WPF. Tôi đang chuyển đổi phiên bản C # của hướng dẫn sang VB.NET từng bước.

Nó có 2 lớp trong ứng dụng nằm trong cùng một không gian tên. Tôi có thể tham chiếu không gian tên trong XAML nhưng khi tôi cố gắng tham chiếu đối tượng lớp trong XAML, tôi gặp lỗi và tôi không thể biên dịch.

Điều kỳ lạ là IntelliSense hoạt động tốt với cả tham chiếu không gian tên thông qua thẻ xmlns: c = và cả khi gõ đối tượng lớp bằng cách sử dụng <c: Nhưng đối tượng được gạch chân và lỗi được tạo ra khi cố gắng xây dựng hoặc làm việc trong trình thiết kế.

Các tệp lớp .vb nằm trong một thư mục có tên \ Controls. Dự án chính Root Namespace được để trống. Lớp học được mã hóa như thế này ...

Namespace MusicPlayer.Controls
    Public Class UpdatingMediaElement
       .... code here
    End Public
End Namespace

Xaml trông như thế này

(không gian tên được xác định trong <Window >thẻ

xmlns:c="clr-namespace:MusicPlayer.Controls"

(đối tượng được xác định trong a <Grid>)

  <c:UpdatingMediaElement Name="MyMediaElement" />

(lỗi hiển thị) Tên "UpdatesMediaE bổ sung" không tồn tại trong không gian tên "không gian tên clr: MusicPlayer.Controls".

Không chắc chắn những gì sai hoặc làm thế nào để sửa chữa nó?


13
Khởi động lại hình ảnh làm việc cho tôi. (không bao giờ đánh giá thấp sức mạnh của việc khởi động lại)
Falaque

1
Một chút giúp đỡ cho những người đang vật lộn với điều này: đảm bảo lớp học của bạn được công khai.
Borzh

Câu trả lời:


233

Khi bạn đang viết mã wpf của mình và VS nói rằng "Tên ABCDE không tồn tại trong không gian tên clr-namepace: ABC". Nhưng bạn hoàn toàn có thể xây dựng dự án của mình thành công, chỉ có một bất tiện nhỏ vì bạn không thể thấy thiết kế UI (hoặc chỉ muốn làm sạch mã).

Hãy thử làm những điều này:

  • Trong VS, nhấp chuột phải vào Giải pháp của bạn -> Thuộc tính -> Thuộc tính cấu hình

  • Một hộp thoại mới được mở, hãy thử thay đổi cấu hình dự án từ Gỡ lỗi sang Phát hành hoặc ngược lại.

Sau đó, xây dựng lại giải pháp của bạn. Nó có thể giải quyết vấn đề của bạn.


4
Điều này vẫn xảy ra trong Cập nhật Visual Studio 2015 1. Giải pháp của bạn đã hoạt động - cảm ơn!
Simon Smith

4
Có lẽ là không, nhưng tôi thấy rằng chỉ cần chuyển đổi giữa chế độ Gỡ lỗi và Phát hành trên thanh công cụ là bất kể.
ketura

35
Xác nhận trên VS 2017 phiên bản 15.2 (26430.15) vào tháng 7 năm 2017. Chỉ cần thay đổi đơn giản trong trình đơn thả xuống từ Gỡ lỗi sang Phát hành, đã biên dịch và lỗi đã biến mất, thay đổi trở lại và biên dịch và lỗi vẫn không còn.
Tedd Hansen

7
Dường như VS17 đặc biệt bướng bỉnh - Đã thử thay đổi Rel / Dbg, thay đổi x64 / x86, đã xóa các thư mục ShadowCache, ElementCache, Bin / Obj, vẫn có "lỗi" và nhà thiết kế không hoạt động cho ứng dụng rất nhỏ này (các ứng dụng khác với giống như 50 lượt xem WPF hoạt động tốt). Xảy ra đột ngột và không thể biến mất. Đã có thử nghiệm này trước nhiều lần nhưng lần đầu tiên trên VS17 và không thể sửa nó ngay bây giờ. Vẫn tho đây là câu trả lời tốt nhất vì nó đã làm việc rất nhiều lần trước đây.
bokibeg

7
Tôi thích cách tôi quay lại câu trả lời này và tôi đã nâng cấp nó, ... 2,5 năm trước.
Mathieu Guindon

51

Nếu tập hợp khác với không gian tên trong đó lớp của bạn được chứa, bạn phải xác định rõ ràng nó.

Ví dụ:-

xmlns:Local="clr-namespace:MusicPlayer.Controls;assembly=MusicPlayer"

1
Mặc dù có vẻ như đã giải quyết được vấn đề của tôi lúc đầu, nó vẫn đưa ra lỗi tương tự. Tuy nhiên, bây giờ tôi thậm chí không thể xây dựng giải pháp nữa.
Bouke

6
@bouke Làm sạch dung dịch và xây dựng lại
Vasanth Sriram

Tuyệt vời, thanx. Điều đó thực sự có ích
Keith

Điều này đã làm điều đó cho tôi. Điều kỳ lạ là các bộ chuyển đổi nằm trong cùng một tập hợp với tệp xaml .... Nhưng chúng ở trên một không gian tên khác nhau.
Jonathan Alfaro

Cảm ơn, lắp ráp đã mất tích.
Bagerfahrer

31

Tôi đã thấy vấn đề này biến mất bằng cách xóa Xaml Design Shadow Cache. Tôi gặp sự cố với Visual Studio 2015 Update 1.

Trong Visual Studio 2015, Cache được đặt ở đây:

%localappdata%\Microsoft\VisualStudio\14.0\Designer\ShadowCache

Quá trình:

  1. Nhấp chuột phải vào giải pháp trong Solution Explorer và chọn "Clean Solution"
  2. Tắt máy ảnh trực quan
  3. Xóa thư mục ShadowCache
  4. Mở lại dự án Visual Studio
  5. Xây dựng lại giải pháp

Và voila không còn lỗi không gian tên.


7
Đáng buồn thay, đã không thay đổi một điều, đối với tôi. Vẫn đối phó với điều này gây phiền nhiễu sau gần một năm. : /
Khale_Kitha

3
Cảm ơn! Điều này đã kết thúc làm việc cho tôi. Thật buồn khi thấy thủ thuật này vẫn còn cần thiết trong VS15
Ocab19

4
Bạn có thể sử dụng% localappdata% \ Microsoft \ VisualStudio \ 14.0 \ Designer \ để đi ngay đến thư mục bên phải
Maxence

1
Có một nhà thiết kế chỉ hoạt động nếu bạn xây dựng giải pháp là khủng khiếp. Hãy tưởng tượng nói với một nhà thiết kế xe hơi để xây dựng toàn bộ chiếc xe trước khi nhìn thấy thiết kế.
Paul McCarthy

25

Trong trường hợp của tôi đó là do các lỗi biên dịch khác . Khi các lỗi khác đã được giải quyết, lỗi có vẻ liên quan này cũng bị xóa khỏi danh sách. Đặc biệt là các lỗi ở cuối danh sách lỗi và trên các trang bạn đã thay đổi gần đây.

Vì vậy, đừng chú ý đến lỗi này trực tiếp và tập trung vào các lỗi khác lúc đầu.


2
Lưu ý rằng việc xây dựng / biên dịch đã giải quyết vấn đề này cho tôi, mặc dù tôi không có bất kỳ lỗi biên dịch không liên quan nào khác. Có vẻ như các cửa sổ XAML không phải lúc nào cũng biết về các lớp mới cho đến khi bạn thực hiện biên dịch.
HK1

1
Đây là lời khuyên tốt nhất cho tôi, nhưng vì @ HK1 đôi khi không có mục nào khác trong danh sách lỗi trình biên dịch ... không có lỗi trong danh sách nhưng có những lỗi khác. Để xem chúng, nhận xét hoặc xóa các dòng được đánh dấu với lỗi không gian tên, biên dịch lại và sau đó bạn sẽ thấy các lỗi biên dịch khác. Sửa đổi chúng và các dòng trước khi được đánh dấu với lỗi không gian tên sẽ ổn khi bạn khôi phục chúng.
SERWare

Tôi đã xóa một phương thức trong mã phía sau vẫn được tham chiếu trong XAML. Khi tôi xóa tham chiếu, lỗi này biến mất.
YarsRevenge13

23

Hãy thử thay đổi nền tảng mục tiêu xây dựng thành x86 và xây dựng dự án.

Tôi nhận thấy thông qua Subversion rằng rõ ràng tôi đã thay đổi mục tiêu Nền tảng xây dựng dự án thành x64. Đây là thay đổi duy nhất tôi đã thực hiện. Sau khi thực hiện thay đổi đó, mã đã hoạt động được một lúc trước khi nó bắt đầu hiển thị cùng một lỗi mà bạn gặp phải. Tôi đã thay đổi mục tiêu nền tảng thành x86 để kiểm tra và đột nhiên nhà thiết kế của tôi đang hoạt động trở lại. Sau đó, tôi đổi nó thành x64 và vấn đề đã biến mất hoàn toàn. Tôi nghi ngờ rằng nhà thiết kế xây dựng một số loại mã được lưu trong bộ đệm x32 và việc thay đổi nền tảng xây dựng x64 sẽ phá vỡ nó khi bạn thực hiện thay đổi mã.


Tôi đã có sự cố này xảy ra và tôi có thể xác nhận điều này giải quyết vấn đề cho tôi. Bạn có thể chuyển về x64 sau khi bạn xây dựng nó trong x86.
teynon

Điều này cũng có hiệu quả với tôi trong VS 2012 ... sau nhiều giờ cố gắng tìm ra điều gì đó hợp lý. Cảm ơn, Tom!
Bryan Greenway

Chuyển sang x86 và quay lại x64 đã khắc phục sự cố ở đây, vì vậy cảm ơn vì đã truyền cảm hứng cho tôi để thử điều đó. Tôi thậm chí đã đóng VS, xóa bin và obj, và xây dựng lại, cùng với các đề xuất khác, và không có gì giúp được cho đến lúc này.
Grault 8/12/2015

Có, điều này cũng làm việc với tôi trên Bản cập nhật VS2015 2. Tuy nhiên, tôi cần phải tải lại các tệp dll bên ngoài và xây dựng lại chúng.
SezMe

Với VS2015U2, tôi vẫn gặp vấn đề này ở x64. Hoạt động tuyệt vời trong bất kỳ CPU. Chuyển đổi qua lại không làm việc cho tôi.
DaleyKD

7

Nếu không điều này sẽ giúp được ai khác

Tôi mới sử dụng WPF và vẫn là người mới làm quen với VB.net - vì vậy tôi đã cho rằng việc nhận được lỗi này là do tôi thực hiện hội nghị thượng đỉnh ngớ ngẩn ........ giả sử tôi thực sự! Tôi đã xoay sở để thoát khỏi nó bằng cách chuyển dự án của tôi từ một ổ đĩa chung sang một trong các ổ đĩa cục bộ của tôi. Lỗi đã biến mất, dự án biên dịch hoàn toàn không có vấn đề gì nữa - chưa. Có vẻ như VS2015 vẫn có vấn đề với các dự án được tổ chức trên một ổ đĩa chung.


2
Đây là trường hợp của tôi, tôi đã chuyển nó sang vm của mình (mà tôi phát triển) và bùng nổ không có vấn đề gì. Cảm ơn!
Mario Tacke

Đây là trường hợp đối với tôi cũng xuất hiện. Chuyển chúng sang ổ đĩa cục bộ (thay vì chia sẻ mạng - do Parallels thiết lập để hợp nhất cả hệ thống tệp Mac và Windows một chút), đã khắc phục sự cố.
ckittel

7

Có thể một giải pháp khác khi dự án biên dịch nhưng lỗi XAML đang hiển thị:

  1. Trong giải pháp khám phá, trên nút dự án có chứa xaml
  2. Nhấp chuột phải vào dự án và chọn 'Unload Project'
  3. Nhấp chuột phải vào dự án và chọn 'Tải lại dự án' Đảm bảo rằng dự án của bạn vẫn được chọn là "dự án khởi động". Nếu không :
  4. Nhấp chuột phải vào dự án và chọn 'Đặt làm dự án khởi động'

Không cần phải xây dựng lại, hoặc đóng studio trực quan.


6

Chúa ơi ... Đây vẫn là một vấn đề năm năm sau trong Visual Studio 2017. Vì tôi mới biết về WPF, tôi chắc chắn vấn đề là do tôi, nhưng không, mọi thứ được biên dịch và chạy chính xác.

Tôi đã thử xây dựng lại, làm sạch và xây dựng lại, chuyển đổi giữa đầu ra x86 / x64, khởi động lại Windows, làm sạch thư mục ShadowCache, thêm "; assembly = {tên lắp ráp chính của tôi}" vào khai báo không gian tên XML, không có gì hiệu quả! Điều duy nhất đã làm:

Đặt lớp Lệnh tĩnh của tôi (trong trường hợp của tôi, thỏa thuận là về việc thiết kế khám phá Lệnh WPF của tôi) trong tổ hợp riêng của nó và thay đổi tên lắp ráp thành tên đó.


2

Tôi cũng gặp vấn đề tương tự và trong trường hợp của tôi, Chế độ xem thiết kế Markup đã yêu cầu tôi xây dựng lại giải pháp và không hiển thị cho tôi bố cục biểu mẫu với thông báo này : Design view is unavailable for x64 and ARM target platforms, hoặc Build the Project to update Design view.

Nó không được giải quyết bằng cách xây dựng lại giải pháp (cả chế độ xem thiết kế cũng như lỗi "Tên không tồn tại trong không gian tên")

Tôi nghĩ rằng đó là vì tôi đã chơi với các cài đặt trên Giải pháp -> Thuộc tính> Thuộc tính cấu hình

Cuối cùng tôi đã giải quyết vấn đề với 2 công việc:

  1. Kiểm tra tất cả các hộp kiểm trên Cột xây dựng của trang: Giải pháp -> Thuộc tính -> Thuộc tính cấu hình
  2. Thay đổi cấu hình giải pháp từ Gỡ lỗi sang Phát hành hoặc ngược lại.

Tôi nghĩ đó là một lỗi trong Visual Studio2012 Update 2.


2

Vấn đề tương tự làm hỏng Visual Studios 2013, Gói dịch vụ 4. Tôi cũng đã thử nó với Visual Studios 2015 Preview với kết quả tương tự.

Đó chỉ là một hạn chế của trình hiển thị WPF mà nhóm Visual Studios chưa sửa. Bằng chứng là, việc xây dựng ở chế độ x86 cho phép trình hiển thị và xây dựng ở chế độ x64 sẽ vô hiệu hóa nó.

Điều kỳ lạ là các tác phẩm intellisense cho Visual Studios 2013, Gói dịch vụ 4.


2

Gần đây tôi đã gặp vấn đề này khi sử dụng VS 2015 Update 3 cho dự án WPF của tôi trong .NET 4.6.2. Bản sao dự án của tôi nằm trong một thư mục mạng , tôi đã di chuyển nó cục bộ và điều đó đã giải quyết được vấn đề.

Điều này có thể giải quyết các loại vấn đề khác, vì có vẻ như VS 2015 không giống như các đường dẫn mạng. Một vấn đề khác là một vấn đề lớn đối với họ là đồng bộ hóa kho git nếu dự án của tôi nằm trong đường dẫn mạng, cũng được giải quyết bằng cách di chuyển cục bộ.


1

Có vẻ như vấn đề này có thể được giải quyết thông qua nhiều "thủ thuật".

Trong trường hợp của tôi, tôi đã xây dựng / xây dựng lại / làm sạch toàn bộ giải pháp, thay vì chỉ là dự án mà tôi đang thực hiện trong giải pháp. Khi tôi nhấp vào "Xây dựng [dự án của tôi]", thông báo lỗi sẽ biến mất.


1

Hãy thử xác minh tài liệu tham khảo lắp ráp của bạn. Nếu bạn có dấu chấm than màu vàng trên tài liệu tham khảo dự án thì có một vấn đề ở đó và bạn sẽ gặp đủ loại lỗi.

Nếu bạn biết tham chiếu dự án là chính xác, hãy kiểm tra khung Target. Ví dụ, có một dự án sử dụng khung tham chiếu 4.5, một dự án có khung 4.5.2 không phải là một sự kết hợp tốt.


Nói cách khác, phiên bản .NET Framework của dự án không thể cũ hơn phiên bản .NET Framework của dự án được tham chiếu.
icernos

1

Giải pháp cho tôi là bỏ chặn các DLL lắp ráp. Các thông báo lỗi bạn nhận được không cho biết điều này, nhưng nhà thiết kế XAML từ chối tải những gì nó gọi là các cụm "hộp cát". Bạn có thể thấy điều này trong cửa sổ đầu ra khi bạn xây dựng. DLL bị chặn nếu chúng được tải xuống từ internet. Để bỏ chặn DLL lắp ráp bên thứ 3 của bạn:

  1. Nhấp chuột phải vào tệp DLL trong Windows Explorer và chọn Thuộc tính.
  2. Ở dưới cùng của tab Chung, nhấp vào nút "Bỏ chặn" hoặc hộp kiểm.

Lưu ý: Chỉ bỏ chặn DLL nếu bạn chắc chắn rằng chúng an toàn.


Điều này làm việc cho tôi - Tôi đã tải xuống một dự án từ dropbox và nhận được lỗi. Tôi cũng đã phải xóa ShadowCache
geometrikal

1

Trong trường hợp của tôi, kiểm soát người dùng đã được thêm vào dự án chính. Tôi đã thử các giải pháp khác nhau ở trên nhưng không có kết quả. Hoặc tôi sẽ nhận được Đánh dấu không hợp lệ nhưng giải pháp sẽ biên dịch và hoạt động hoặc tôi sẽ thêm xmlns: c = "clr-namepace: MyProject; assembly = MyProject" và sau đó đánh dấu sẽ hiển thị, nhưng tôi sẽ gặp lỗi biên dịch thẻ không tồn tại trong không gian tên XML.

Cuối cùng, tôi đã thêm một dự án Thư viện điều khiển người dùng WPF mới vào giải pháp và chuyển điều khiển người dùng của tôi từ dự án chính sang dự án đó. Đã thêm tham chiếu và thay đổi lắp ráp để trỏ đến thư viện mới và cuối cùng đánh dấu hoạt động và dự án được biên dịch không có lỗi.


1

Tôi đã đi qua tất cả các câu trả lời và không ai giúp tôi. Cuối cùng đã có thể tự mình giải quyết nó, vì vậy hãy trình bày câu trả lời vì nó có thể giúp đỡ người khác.

Trong trường hợp của tôi, giải pháp có hai dự án, một dự án chứa các mô hình (giả sử tên dự án và tên lắp ráp là Mô hình ) và một dự án chứa mô hình khung nhìn và khung nhìn (theo quy ước của chúng tôi: dự án, tên lắp ráp và không gian tên mặc định là Model.Monitor ) . Dự án Model.Monitor đã giới thiệu mô hình.

Trong dự án Model.Monitor, trong một trong xaml, tôi đã bao gồm không gian tên sau: xmlns: Monitor = "clr-namepace: Model.Monitor"

Tôi nghi ngờ rằng MsBuild và Visual Studio sau đó đã bị lỗi khi họ đang cố gắng tìm loại 'Màn hình' trong cụm 'Mô hình' . Để giải quyết tôi đã thử như sau:

  1. xmlns: Monitor = "clr-namepace: Model.Monitor; assembly =" - hợp lệ nếu không gian tên nằm trong cùng một cụm như trên https://msdn.microsoft.com/en-us/l Library / ms747086 (v = vs .110) .aspx
  2. cũng đã thử khai báo không gian tên rõ ràng: xmlns: Monitor = "clr-không gian tên: Model.Monitor; assembly = Model.Monitor"

Không phải ở trên làm việc.

Cuối cùng tôi đã từ bỏ và khi một công việc xung quanh chuyển UserControl tôi đang cố gắng sử dụng sang một không gian tên khác: 'ModelMonitor' . Tôi đã có thể biên dịch tốt sau đó.


1

Trong trường hợp của tôi, tôi có một không gian tên và lớp được đánh vần giống hệt nhau, vì vậy, ví dụ, một trong những không gian tên của tôi là

firstDepth.secondDepth.Fubar

trong đó có các lớp riêng của nó (ví dụ FirstDepth.secondDepth.Fubar.someclass)

nhưng tôi cũng có một lớp ' Fubar ' trong không gian tên

firstDepth.secondDepth

mà văn bản giải quyết giống như không gian tên Fubar ở trên.

Đừng làm điều này


1

Trong trường hợp của tôi, vấn đề là do một số tệp ảo trong thư mục obj của dự án. Sau đây đã khắc phục sự cố cho tôi:

  • Dự án sạch
  • Thoát VS
  • rm -rf / obj / *
  • Gọi VS và xây dựng lại

1

Tôi cũng gặp nhiều rắc rối với cái này! Intellisense giúp tôi hoàn thành không gian tên và mọi thứ, nhưng trình biên dịch khóc. Tôi đã thử mọi thứ tôi tìm thấy trong chủ đề này và các chủ đề khác. Tuy nhiên, trong trường hợp của tôi, điều đã giúp cuối cùng là viết một cái gì đó như thế này:

xmlns:util="clr-namespace:LiveSpielTool.Utils;assembly="

Để trống tên lắp ráp. Không biết tại sao. Nhưng nó đã được đề cập ở đây. Tôi phải thêm tôi đang phát triển một hội đồng, vì vậy thuộc tính lắp ráp có thể có ý nghĩa. Nhưng nhập tên lắp ráp không hoạt động. Thật ki cục.


0

VB.NET không tự động thêm thông tin Namespace dựa trên cấu trúc thư mục như trong C #. Tôi nghĩ rằng tôi đang trải qua cùng một hướng dẫn như bạn (Dạy cho bản thân WPF trong 24 giờ) và thực hiện chuyển đổi tương tự sang VB.

Tôi thấy bạn phải tự thêm thông tin Không gian tên vào cả Lớp XAML và mã XAML.VB phía sau để có thể sử dụng Không gian tên như được mô tả trong sách. Ngay cả sau đó, VB không tự động Gán không gian tên cho hội như trong VB.

Có một bài viết khác ở đây chỉ ra cách đưa điều này vào các mẫu dự án của bạn để nó tự động xây dựng thông tin Không gian tên - Tự động thêm không gian tên khi thêm mục mới


0

Trong trang thuộc tính giải pháp, hãy kiểm tra nền tảng của hội đồng có chứa "UpdatesMediaEuity" và các giả định có chứa bất kỳ siêu lớp và giao diện nào mà lớp con "UpdatesMediaEuity" thực hiện. Dường như nền tảng của tất cả các hội đồng này phải là "AnyCPU".


0

Một nguyên nhân có thể khác: Một sự kiện hậu xây dựng là loại bỏ DLL dự án khỏi thư mục xây dựng.

Để làm rõ: Nhà thiết kế WPF có thể báo cáo "Tên XXX không tồn tại trong không gian tên ...", ngay cả khi tên đó tồn tại trong không gian tên và dự án sẽ xây dựng và chạy tốt nếu sự kiện hậu xây dựng loại bỏ DLL dự án khỏi thư mục bản dựng (bin \ Debug, bin \ Release, v.v.). Tôi có kinh nghiệm cá nhân với điều này trong Visual Studio 2015.


0

Ok, không có lời khuyên nào trong số này làm việc cho tôi, thật không may. Tôi cuối cùng đã có thể giải quyết vấn đề. Có vẻ như Visual Studio không chơi tốt với các ổ đĩa mạng. Tôi đã giải quyết vấn đề này bằng cách chuyển dự án từ ổ đĩa chung sang địa phương của tôi và biên dịch lại. Không còn lỗi nữa.


Câu trả lời này được cung cấp ít nhất hai lần ở trên.
pdschuller 16/03/18

0

Thêm vào đống.

Của tôi là tên lắp ráp của ứng dụng WPF là tên lắp ráp giống như một dll được tham chiếu. Vì vậy, hãy chắc chắn rằng bạn không có tên lắp ráp trùng lặp trong bất kỳ dự án nào của bạn.


0

Tôi đã có giải pháp được lưu trữ trên mạng chia sẻ và mỗi lần mở, tôi sẽ nhận được cảnh báo về các nguồn không đáng tin cậy. Tôi đã chuyển nó sang một ổ đĩa cục bộ và lỗi "không gian tên không tồn tại" cũng biến mất.


0

Ngoài ra, hãy thử nhấp chuột phải vào dự án-> thuộc tính của bạn và thay đổi mục tiêu Nền tảng thành Bất kỳ CPU nào và xây dựng lại, sau đó nó sẽ hoạt động. Điều này làm việc cho tôi


1
Đề xuất của bạn là một thay đổi quan trọng thậm chí có thể không có khả năng cho OP nếu họ đang nhắm mục tiêu vào một môi trường cụ thể. Dù bằng cách nào, nó rất khó có thể là nguyên nhân của vấn đề, và nếu nó giải quyết được vấn đề cho bạn thì tôi sẽ đề nghị rằng vấn đề thực tế của bạn là không khớp với các cấu hình dự án, điều này sẽ thể hiện theo nhiều cách khác nhau cho vấn đề được trình bày ở đây.
LordWilmore

0

Vấn đề này cũng có thể được gây ra nếu lắp ráp mà bạn tham khảo không thực sự được xây dựng. Ví dụ: nếu xaml của bạn nằm trong Hội đồng1 và bạn cũng đang tham khảo một lớp trong Hội đồng1, nhưng hội đồng đó có lỗi và không được xây dựng, lỗi này sẽ được hiển thị.

Tôi cảm thấy ngớ ngẩn về điều đó, nhưng trong trường hợp của tôi, tôi đã xé nát quyền kiểm soát người dùng và kết quả là có tất cả các loại lỗi trong các lớp liên quan. Khi tôi đang cố gắng khắc phục tất cả, tôi đã bắt đầu với các lỗi trong câu hỏi, không nhận ra rằng xaml dựa vào các hội đồng được xây dựng để tìm các tham chiếu này (không giống như mã c # / vb có thể xử lý ngay cả trước khi bạn xây dựng).


0

Tôi đã thêm phần lắp ráp như một dự án - đầu tiên đã xóa ddl được thêm cụ thể vào các tham chiếu đến dll - đã làm điều đó.


0

Tôi nhận được vấn đề này tất cả các thời gian. Quan điểm của tôi nằm trong dự án Thư viện điều khiển tùy chỉnh WPF (một biến thể trên Thư viện lớp). Tôi có thể tham chiếu các hội đồng dựng sẵn, nhưng không thể tham chiếu bất kỳ mã nào trong dự án khác của cùng một giải pháp. Ngay khi tôi chuyển mã đến cùng một dự án với xaml, nó đã được nhận ra.


0

Trong trường hợp của tôi, vấn đề này sẽ xảy ra khi kiến ​​trúc của chương trình wpf không hoàn toàn giống với sự phụ thuộc. Giả sử bạn có một phụ thuộc là x64 và một phụ thuộc khác là AnyCPU. Sau đó, nếu bạn chọn x64, loại trong AnyCPU dll sẽ "không tồn tại", nếu không, loại trong x64 dll sẽ "không tồn tại". Bạn chỉ không thể làm nổi bật cả hai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.