Sau khi di chuyển một dự án từ .NET 1.1 sang .NET 2.0, MsBuild phát ra rất nhiều cảnh báo cho một số đối tượng COM.Rất nhiều cảnh báo khi COM đối tượng ActiveDs hoặc MSXML2 được tham chiếu
Mẫu mã cho thử nghiệm (mã thực tế không quan trọng, chỉ được sử dụng để tạo ra các cảnh báo):
using System;
using System.DirectoryServices;
using ActiveDs;
namespace Test
{
public class Class1
{
public static void Main(string[] args)
{
string adsPath = String.Format("WinNT://{0}/{1}", args[0], args[1]);
DirectoryEntry localuser = new DirectoryEntry(adsPath);
IADsUser pUser = (IADsUser) localuser.NativeObject;
Console.WriteLine("User = {0}", pUser.ADsPath);
}
}
}
thông điệp cảnh báo giống như
C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Microsoft.Common.targets: warning: Ít nhất một trong các đối số cho 'ITypeLib.RemoteGetLibAttr' không thể được sắp xếp theo trình tự thời gian. Do đó, các đối số như vậy sẽ được chuyển thành một con trỏ và có thể yêu cầu mã không an toàn để thao tác.
Quan sát:
- xảy ra cho ActiveDs (11 cảnh báo) và MSXML2 (54 cảnh báo).
- Không được thấy cho các đối tượng COM của chính chúng ta.
<Reference>
mục trong file csproj chứa thuộc tínhWrapperTool = "tlbimp"
- Mặc dù tất cả các cảnh báo, không có vấn đề đã được quan sát trong hệ thống đang chạy.
Bất kỳ ý tưởng nào về cách loại bỏ các cảnh báo?
Bạn đã bao giờ tìm ra điều này chưa? – Mario
Thật không may, không. – gyrolf