Lập trình C#

Hướng dẫn khắc phục compiler warning CS1762

Hướng dẫn khắc phục compiler warning CS1762
Được viết bởi Minh Hoàng

Series lập trình C#, ngôn ngữ lập trình hiện đại và mạnh mẽ.

Trong bài viết này sẽ hướng dẫn các bạn khắc phục warning CS1762 khi biên dịch (compiler) project csharp.

Hiện tượng:
Khi biên dịch project xong, các bạn nhận được thông báo warning kiểu như sau:
1>CSC : warning CS1762: A reference was created to embedded interop assembly ‘<assembly1>’ because of an indirect reference to that assembly created by assembly ‘<assembly2>’. Consider changing the ‘Embed Interop Types’ property on either assembly.

Nguyên nhân:
– Warning này có thể làm bạn ngạc nhiên, không biết tại sao nó lại xuất hiện. Vì loại thuộc tính Embed Interop Types, mặc định được set là True, và bạn đang nhúng (embedding) loại thông tin mà có thể trình biên dịch không nhận ra.
– Warning này sẽ xảy ra khi project (ứng dụng) của bạn có tham chiếu đến hai assembly khác nhau. Đối với tham chiếu assembly đầu tiên (assembly1), bạn đã thiết lập thuộc tính Embed Interop Types thành True. Đối với assembly thứ hai (assembly2), bạn đã đặt thuộc tính Embed Interop TypesFalse.
– Warning xuất hiện trong trường hợp này bởi vì assembly thứ hai cũng tham chiếu đến assembly đầu tiên. Ở tình huống này là ứng dụng của bạn đang hướng dẫn trình biên dịch cho cả hai loại thông tin nhúng (embed type information) từ assembly đầu tiên, và không nhúng thông tin (embed type information) từ assembly đầu tiên thông qua assembly thứ hai.

Cách khắc phục:
– Để giải quyết vấn đề này, bạn cần phải đặt thuộc tính Embed Interop Types cho cả hai tham chiếu ‘<assembly1>’ và ‘<assembly2>’ thành cùng một giá trị:

  • Hoặc cùng bằng True với embed type information.
  • Hoặc cùng bằng False để lấy type information từ PIA.

– Ngoài ra, còn một số warning khi compiler, bạn có thể tham khảo tại đây: [MSDN] Troubleshooting Errors When Embedding Type Information (Doug Rothaus).
– Để thay đổi giá trị của thuộc tính Embed Interop Types, bạn Open Project > Click References > Right-click vào một assembly muốn thay đổi thuộc tính > Chọn Properties.

namespace System.Windows.Forms and warning CS1762 for .NET 4.0

Troubleshooting Errors When Embedding Type Information (Doug Rothaus)
Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

Translate »