本文整理汇总了C#中MonoDevelop.Projects.DotNetProject.SupportsFramework方法的典型用法代码示例。如果您正苦于以下问题:C# DotNetProject.SupportsFramework方法的具体用法?C# DotNetProject.SupportsFramework怎么用?C# DotNetProject.SupportsFramework使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoDevelop.Projects.DotNetProject
的用法示例。
在下文中一共展示了DotNetProject.SupportsFramework方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RuntimeOptionsPanelWidget
public RuntimeOptionsPanelWidget (DotNetProject project, IEnumerable<ItemConfiguration> configurations)
{
Build ();
this.project = project;
if (project != null) {
// Get the list of available versions, and add only those supported by the target language.
foreach (TargetFramework fx in Runtime.SystemAssemblyService.GetTargetFrameworks ()) {
if (fx != project.TargetFramework) {
if (!project.TargetRuntime.IsInstalled (fx))
continue;
if (!project.SupportsFramework (fx))
continue;
}
runtimeVersionCombo.AppendText (fx.Name);
if (project.TargetFramework == fx)
runtimeVersionCombo.Active = supportedVersions.Count;
supportedVersions.Add (fx);
}
if (supportedVersions.Count <= 1)
Sensitive = false;
}
else
Sensitive = false;
}
示例2: RuntimeOptionsPanelWidget
public RuntimeOptionsPanelWidget (DotNetProject project, IEnumerable<ItemConfiguration> configurations)
{
Build ();
this.project = project;
if (project == null) {
Sensitive = false;
return;
}
frameworks = Runtime.SystemAssemblyService.GetTargetFrameworks ()
.Where (fx => !fx.Hidden && project.TargetRuntime.IsInstalled (fx) && project.SupportsFramework (fx))
.ToList ();
bool notInstalled = false;
if (!frameworks.Any (fx => fx.Id == project.TargetFramework.Id)) {
notInstalled = true;
frameworks.Add (project.TargetFramework);
}
//sort by id ascending, version descending, profile ascending
frameworks.Sort ((x, y) => {
var cmp = string.CompareOrdinal (x.Id.Identifier, y.Id.Identifier);
if (cmp != 0)
return cmp;
cmp = string.CompareOrdinal (y.Id.Version, x.Id.Version);
if (cmp != 0)
return cmp;
return string.CompareOrdinal (x.Id.Profile, y.Id.Profile);
});
for (int i = 0; i < frameworks.Count; i++) {
var fx = frameworks[i];
if (project.TargetFramework.Id == fx.Id) {
string name = notInstalled? GettextCatalog.GetString ("{0} (Not installed)", fx.Name) : fx.Name;
runtimeVersionCombo.AppendText (name);
runtimeVersionCombo.Active = i;
} else {
runtimeVersionCombo.AppendText (fx.Name);
}
}
Sensitive = frameworks.Count > 1;
}
示例3: SetClosestSupportedTargetFramework
static void SetClosestSupportedTargetFramework (FileFormat format, DotNetProject project)
{
// If the solution format can't write this project due to an unsupported framework, try finding the
// closest valid framework. DOn't worry about whether it's installed, that's up to the user to correct.
TargetFramework curFx = project.TargetFramework;
var candidates = Runtime.SystemAssemblyService.GetTargetFrameworks ()
.Where (fx =>
//only frameworks with the same ID, else version comparisons are meaningless
fx.Id.Identifier == curFx.Id.Identifier &&
//don't consider profiles, only full frameworks
fx.Id.Profile == null &&
//and the project and format must support the framework
project.SupportsFramework (fx) && format.SupportsFramework (fx))
//FIXME: string comparisons aren't a valid way to compare profiles, but it works w/released .NET versions
.OrderBy (fx => fx.Id.Version)
.ToList ();
TargetFramework newFx =
candidates.FirstOrDefault (fx => string.CompareOrdinal (fx.Id.Version, curFx.Id.Version) > 0)
?? candidates.LastOrDefault ();
if (newFx != null)
project.TargetFramework = newFx;
}