किसी प्रोजेक्ट को .NET 1.1 से .NET 2.0 तक ले जाने के बाद, एमएसबिल्ड कुछ COM ऑब्जेक्ट्स के लिए बहुत सी चेतावनियां निकालती है। परीक्षण के लिएजब COM ऑब्जेक्ट्स ActiveDs या MSXML2 संदर्भित होते हैं तो बहुत सारी निर्माण चेतावनियां
नमूना कोड (वास्तविक कोड कोई फर्क नहीं पड़ता, बस चेतावनी बनाने के लिए इस्तेमाल):
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);
}
}
}
चेतावनी संदेश की तरह
सी लग रही है: \ WINDOWS \ Microsoft.NET \ फ्रेमवर्क \ v2.0.50727 \ Microsoft.Common.targets: चेतावनी: 'ITypeLib.RemoteGetLibAttr' के लिए तर्कों में से कम से कम एक रनटाइम मार्शलर द्वारा मार्शल नहीं किया जा सकता है। इसलिए इस तरह के तर्क एक सूचक के रूप में पारित किया जाएगा और असुरक्षित कोड की आवश्यकता हो सकती है।
टिप्पणियों:
- ActiveDs (11 चेतावनी) और MSXML2 (54 चेतावनी) के लिए होता है।
- हमारे अपने COM ऑब्जेक्ट्स के लिए नहीं देखा गया।
<Reference>
.csproj फ़ाइल में प्रविष्टि विशेषताWrapperTool = "tlbimp"
- सभी चेतावनियों के बावजूद, चल रहे सिस्टम में कोई समस्या नहीं देखी गई है।
कोई विचार चेतावनी से छुटकारा पाने के लिए कैसे?
क्या आपने कभी इसे समझने का प्रबंधन किया था? – Mario
दुर्भाग्य से, नहीं। – gyrolf