Nach dem Verschieben eines Projekts von .NET 1.1 zu .NET 2.0, MsBuild sendet viele Warnungen für einige COM-Objekte.Viele Build-Warnungen, wenn COM-Objekte ActiveDs oder MSXML2 referenziert werden
Beispielcode für Test (Ist-Code keine Rolle spielt, nur verwendet, um die Warnungen zu erstellen):
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);
}
}
}
Warnmeldungen aussehen
C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Microsoft.Common.targets: Warnung: Mindestens eines der Argumente für 'ITypeLib.RemoteGetLibAttr' kann vom Laufzeit-Marshaller nicht gemarshallt werden. Solche Argumente werden daher als Zeiger übergeben und erfordern möglicherweise unsicheren Code zur Manipulation.
Beobachtungen:
- geschieht für ActiveDs (11 Warnungen) und MSXML2 (54 Warnungen).
- Nicht für unsere eigenen COM-Objekte gesehen.
<Reference>
Eintrag in CSPROJ DateiattributWrapperTool = "tlbimp"
- Trotz aller Warnungen enthält, haben keine Probleme im laufenden System beobachtet.
Irgendeine Idee, wie man die Warnungen loswird?
Haben Sie es jemals geschafft, dies herauszufinden? – Mario
Leider nein. – gyrolf