本文整理汇总了C#中MonoDevelop.Core.Assemblies.TargetFramework.CanReferenceAssembliesTargetingFramework方法的典型用法代码示例。如果您正苦于以下问题:C# TargetFramework.CanReferenceAssembliesTargetingFramework方法的具体用法?C# TargetFramework.CanReferenceAssembliesTargetingFramework怎么用?C# TargetFramework.CanReferenceAssembliesTargetingFramework使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoDevelop.Core.Assemblies.TargetFramework
的用法示例。
在下文中一共展示了TargetFramework.CanReferenceAssembliesTargetingFramework方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SupportsFramework
public override bool SupportsFramework (TargetFramework framework)
{
// DotNetAssemblyProject can only generate assemblies for the regular framework.
// Special frameworks such as Moonlight or MonoTouch must subclass DotNetProject directly.
if (!framework.CanReferenceAssembliesTargetingFramework (TargetFrameworkMoniker.NET_1_1))
return false;
return base.SupportsFramework (framework);
}
示例2: SupportsFramework
public override bool SupportsFramework (TargetFramework framework)
{
if (framework.Id.Identifier == TargetFrameworkMoniker.ID_PORTABLE && framework.Id.Version == "4.0")
return true;
if (!framework.CanReferenceAssembliesTargetingFramework (TargetFrameworkMoniker.PORTABLE_4_0))
return false;
return base.SupportsFramework (framework);
}
示例3: OnSupportsFramework
protected virtual bool OnSupportsFramework (TargetFramework framework)
{
// DotNetAssemblyProject can only generate assemblies for the regular framework.
// Special frameworks such as Moonlight or MonoTouch must override SupportsFramework.
if (!framework.CanReferenceAssembliesTargetingFramework (TargetFrameworkMoniker.NET_1_1))
return false;
if (LanguageBinding == null)
return false;
ClrVersion[] versions = OnGetSupportedClrVersions ();
if (versions != null && versions.Length > 0 && framework != null) {
foreach (ClrVersion v in versions) {
if (v == framework.ClrVersion)
return true;
}
}
return false;
}
示例4: 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).ToList ();
//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.CanReferenceAssembliesTargetingFramework (asm.Package.TargetFramework))
return asm;
else
return null;
}
var bestFx = BestFrameworkAssembly (fxAsms, fx);
if (bestFx != null)
return bestFx;
// We have to find the assembly with the same name in the target fx
string fname = Path.GetFileName (fxAsms.First ().Location);
var possible = packages.Where (p => p.IsFrameworkPackage && fx.IncludesFramework (p.TargetFramework))
.SelectMany (p => p.Assemblies)
.Where (a => Path.GetFileName (a.Location) == fname)
.ToList ();
return BestFrameworkAssembly (possible);
}
示例5: 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;
}
var asms = FindNewerAssembliesSameName (fullname).ToList ();
if (fx != null) {
var fxAsm = BestFrameworkAssembly (asms, fx);
if (fxAsm != null)
return fxAsm.FullName;
}
string bestMatch = null;
foreach (SystemAssembly asm in asms) {
if (fx.CanReferenceAssembliesTargetingFramework (asm.Package.TargetFramework)) {
if (package != null && asm.Package.Name == package)
return asm.FullName;
bestMatch = asm.FullName;
}
}
return bestMatch;
}
示例6: GetPackagesInternal
IEnumerable<SystemPackage> GetPackagesInternal (TargetFramework fx)
{
foreach (SystemPackage pkg in packages) {
if (pkg.IsFrameworkPackage) {
if (fx.IncludesFramework (pkg.TargetFramework))
yield return pkg;
} else {
if (fx.CanReferenceAssembliesTargetingFramework (pkg.TargetFramework))
yield return pkg;
}
}
}
示例7: 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.CanReferenceAssembliesTargetingFramework (asm.Package.TargetFramework))
return asm;
else
return null;
}
foreach (var fxAsm in fxAsms) {
if (fx.IncludesFramework (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.IncludesFramework (rpack.TargetFramework) && Path.GetFileName (fxAsm.Location) == fname)
return fxAsm;
}
}
return null;
}