本文整理汇总了C#中MonoDevelop.Core.Assemblies.TargetFramework.IsExtensionOfFramework方法的典型用法代码示例。如果您正苦于以下问题:C# TargetFramework.IsExtensionOfFramework方法的具体用法?C# TargetFramework.IsExtensionOfFramework怎么用?C# TargetFramework.IsExtensionOfFramework使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoDevelop.Core.Assemblies.TargetFramework
的用法示例。
在下文中一共展示了TargetFramework.IsExtensionOfFramework方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetAssemblyForVersion
// Given the full name of an assembly, returns the corresponding full assembly name
// in the specified target CLR version, or null if it doesn't exist in that version.
public SystemAssembly GetAssemblyForVersion (string fullName, string packageName, TargetFramework fx)
{
Initialize ();
fullName = NormalizeAsmName (fullName);
//get the SystemAssembly for the current fullname, NOT the new target fx
//in order to be able to check whether it's a framework assembly
SystemAssembly asm = GetAssemblyFromFullName (fullName, packageName, null);
if (asm == null)
return null;
var fxAsms = asm.AllSameName ().Where (a => a.Package.IsFrameworkPackage);
//if the asm is not a framework asm, we don't upgrade it automatically
if (!fxAsms.Any ()) {
// Return null if the package is not compatible with the requested version
if (fx.IsCompatibleWithFramework (asm.Package.TargetFramework))
return asm;
else
return null;
}
foreach (var fxAsm in fxAsms) {
if (fx.IsExtensionOfFramework (fxAsm.Package.TargetFramework))
return fxAsm;
}
// We have to find the assembly with the same name in the target fx
string fname = Path.GetFileName ((string) fxAsms.First ().Location);
foreach (var pair in assemblyFullNameToAsm) {
foreach (var fxAsm in pair.Value.AllSameName ()) {
var rpack = fxAsm.Package;
if (rpack.IsFrameworkPackage && fx.IsExtensionOfFramework (rpack.TargetFramework) && Path.GetFileName (fxAsm.Location) == fname)
return fxAsm;
}
}
return null;
}
示例2: FindInstalledAssembly
// Returns the installed version of the given assembly name
// (it returns the full name of the installed assembly).
public string FindInstalledAssembly (string fullname, string package, TargetFramework fx)
{
Initialize ();
fullname = NormalizeAsmName (fullname);
SystemAssembly fasm = GetAssemblyFromFullName (fullname, package, fx);
if (fasm != null)
return fullname;
// Try to find a newer version of the same assembly, preferring framework assemblies
if (fx == null) {
string best = null;
foreach (SystemAssembly asm in FindNewerAssembliesSameName (fullname)) {
if (package == null || asm.Package.Name == package) {
if (asm.Package.IsFrameworkPackage)
return asm.FullName;
else
best = asm.FullName;
}
}
return best;
}
string bestMatch = null;
foreach (SystemAssembly asm in FindNewerAssembliesSameName (fullname)) {
if (asm.Package.IsFrameworkPackage) {
if (fx.IsExtensionOfFramework (asm.Package.TargetFramework))
if (package == null || asm.Package.Name == package)
return asm.FullName;
} else if (fx.IsCompatibleWithFramework (asm.Package.TargetFramework)) {
if (package != null && asm.Package.Name == package)
return asm.FullName;
bestMatch = asm.FullName;
}
}
return bestMatch;
}