ToolLocationHelper.GetPathToDotNetFrameworkFile Methode
Definition
Ruft einen vollqualifizierten Pfad zu einer Datei im .NET Framework-Verzeichnis ab.Gets a fully qualified path to a file in the .NET Framework directory.
Überlädt
GetPathToDotNetFrameworkFile(String, TargetDotNetFrameworkVersion) |
Erhalten Sie einen voll qualifizierten Pfad zu einer Datei im Stammverzeichnis des Frameworks.Get a fully qualified path to a file in the frameworks root directory. |
GetPathToDotNetFrameworkFile(String, TargetDotNetFrameworkVersion, DotNetFrameworkArchitecture) |
Einen voll qualifizierten Pfad zu einer Datei im Stammverzeichnis des Frameworks für die angegebene Architektur erhalten.Get a fully qualified path to a file in the frameworks root directory for the specified architecture. |
GetPathToDotNetFrameworkFile(String, TargetDotNetFrameworkVersion)
Erhalten Sie einen voll qualifizierten Pfad zu einer Datei im Stammverzeichnis des Frameworks.Get a fully qualified path to a file in the frameworks root directory.
public:
static System::String ^ GetPathToDotNetFrameworkFile(System::String ^ fileName, Microsoft::Build::Utilities::TargetDotNetFrameworkVersion version);
public static string GetPathToDotNetFrameworkFile (string fileName, Microsoft.Build.Utilities.TargetDotNetFrameworkVersion version);
static member GetPathToDotNetFrameworkFile : string * Microsoft.Build.Utilities.TargetDotNetFrameworkVersion -> string
Public Shared Function GetPathToDotNetFrameworkFile (fileName As String, version As TargetDotNetFrameworkVersion) As String
Parameter
- fileName
- String
Der Dateiname, der im .NET Framework-Verzeichnis gesucht werden sollFile name to locate in the .NET Framework directory
- version
- TargetDotNetFrameworkVersion
Version der .NET Framework-Zielplattform.Version of the targeted .NET Framework
Gibt zurück
Gibt "Null" zurück, wenn auf diesem Computer keine Ziel Frameworks vorhanden sind.Will return 'null' if there is no target frameworks on this machine.
Beispiele
Im folgenden Beispiel wird eine erstellt ToolTask , die Ilasm.exe (Il-Assembler)ausführt.The following example creates a ToolTask that runs Ilasm.exe (IL Assembler). Die CommandLineBuilder ToolLocationHelper -,-und- TaskLoggingHelper Klassen werden verwendet, um die zum Ausführen der Aufgabe benötigten Informationen zu generieren.The CommandLineBuilder, ToolLocationHelper, and TaskLoggingHelper classes are used to generate the information needed to run the task.
using System;
using System.Collections;
using System.Text;
using Microsoft.Build.Utilities;
using Microsoft.Build.Framework;
namespace MSBuildTasks
{
/// <summary>
/// A very simple and incomplete ToolTask to wrap the ILASM.EXE tool.
/// </summary>
public class ILAsm : ToolTask
{
#region Member Data
/// <summary>
/// Gets the collection of parameters used by the task class.
/// </summary>
/// <value>Parameter bag.</value>
protected internal Hashtable Bag
{
get
{
return bag;
}
}
private Hashtable bag = new Hashtable();
#endregion
#region ILAsm Task Properties
/// <summary>
/// The Source file that is to be compled (.il)
/// </summary>
public ITaskItem Source
{
get { return Bag["Source"] as ITaskItem; }
set { Bag["Source"] = value; }
}
/// <summary>
/// Either EXE or DLL indicating the assembly type to be generated
/// </summary>
public string TargetType
{
get { return Bag["TargetType"] as string; }
set { Bag["TargetType"] = value; }
}
#endregion
#region ToolTask Members
protected override string ToolName
{
get { return "ILAsm.exe"; }
}
/// <summary>
/// Use ToolLocationHelper to find ILASM.EXE in the Framework directory
/// </summary>
/// <returns></returns>
protected override string GenerateFullPathToTool()
{
// Ask ToolLocationHelper to find ILASM.EXE - it will look in the latest framework directory available
return ToolLocationHelper.GetPathToDotNetFrameworkFile(ToolName, TargetDotNetFrameworkVersion.VersionLatest);
}
#endregion
#region ILAsm Task Members
/// <summary>
/// Construct the command line from the task properties by using the CommandLineBuilder
/// </summary>
/// <returns></returns>
protected override string GenerateCommandLineCommands()
{
CommandLineBuilder builder = new CommandLineBuilder();
// We don't need the tool's logo information shown
builder.AppendSwitch("/nologo");
string targetType = Bag["TargetType"] as string;
// Be explicit with our switches
if (targetType != null)
{
if (String.Compare(targetType, "DLL", true) == 0)
{
builder.AppendSwitch("/DLL");
}
else if (String.Compare(targetType, "EXE", true) == 0)
{
builder.AppendSwitch("/EXE");
}
else
{
Log.LogWarning("Invalid TargetType (valid values are DLL and EXE) specified: {0}", targetType);
}
}
// Add the filename that we want the tool to process
builder.AppendFileNameIfNotNull(Bag["Source"] as ITaskItem);
// Log a High importance message stating the file that we are assembling
Log.LogMessage(MessageImportance.High, "Assembling {0}", Bag["Source"]);
// We have all of our switches added, return the commandline as a string
return builder.ToString();
}
#endregion
}
}
Imports System.Collections
Imports System.Text
Imports Microsoft.Build.Utilities
Imports Microsoft.Build.Framework
Namespace MSBuildTasks
''' <summary>
''' A very simple and incomplete ToolTask to wrap the ILASM.EXE tool.
''' </summary>
Public Class ILAsm
Inherits ToolTask
''' <summary>
''' Parameter bag.
''' </summary>
Protected Friend ReadOnly Property Bag() As Hashtable
Get
Return propertyBag
End Get
End Property
Private propertyBag As New Hashtable()
''' <summary>
''' The Source file that is to be compled (.il)
''' </summary>
Public Property [Source]() As ITaskItem
Get
Return Bag("Source")
End Get
Set(ByVal value As ITaskItem)
Bag("Source") = value
End Set
End Property
''' <summary>
''' Either EXE or DLL indicating the assembly type to be generated
''' </summary>
Public Property TargetType() As String
Get
Return Bag("TargetType")
End Get
Set(ByVal value As String)
Bag("TargetType") = value
End Set
End Property '
Protected Overrides ReadOnly Property ToolName() As String
Get
Return "ILAsm.exe"
End Get
End Property
''' <summary>
''' Use ToolLocationHelper to find ILASM.EXE in the Framework directory
''' </summary>
Protected Overrides Function GenerateFullPathToTool() As String
' Ask ToolLocationHelper to find ILASM.EXE - it will look in the latest framework directory available
Return ToolLocationHelper.GetPathToDotNetFrameworkFile(ToolName, TargetDotNetFrameworkVersion.VersionLatest)
End Function
''' <summary>
''' Construct the command line from the task properties by using the CommandLineBuilder
''' </summary>
Protected Overrides Function GenerateCommandLineCommands() As String
Dim builder As New CommandLineBuilder()
' We don't need the tool's logo information shown
builder.AppendSwitch("/nologo")
Dim targetType As String = Bag("TargetType")
' Be explicit with our switches
If Not (targetType Is Nothing) Then
If [String].Compare(targetType, "DLL", True) = 0 Then
builder.AppendSwitch("/DLL")
ElseIf [String].Compare(targetType, "EXE", True) = 0 Then
builder.AppendSwitch("/EXE")
Else
Log.LogWarning("Invalid TargetType (valid values are DLL and EXE) specified: {0}", targetType)
End If
End If
' Add the filename that we want the tool to process
builder.AppendFileNameIfNotNull(Bag("Source"))
' Log a High importance message stating the file that we are assembling
Log.LogMessage(MessageImportance.High, "Assembling {0}", Bag("Source"))
' We have all of our switches added, return the commandline as a string
Return builder.ToString()
End Function
End Class
End Namespace
Gilt für:
GetPathToDotNetFrameworkFile(String, TargetDotNetFrameworkVersion, DotNetFrameworkArchitecture)
Einen voll qualifizierten Pfad zu einer Datei im Stammverzeichnis des Frameworks für die angegebene Architektur erhalten.Get a fully qualified path to a file in the frameworks root directory for the specified architecture.
public:
static System::String ^ GetPathToDotNetFrameworkFile(System::String ^ fileName, Microsoft::Build::Utilities::TargetDotNetFrameworkVersion version, Microsoft::Build::Utilities::DotNetFrameworkArchitecture architecture);
public static string GetPathToDotNetFrameworkFile (string fileName, Microsoft.Build.Utilities.TargetDotNetFrameworkVersion version, Microsoft.Build.Utilities.DotNetFrameworkArchitecture architecture);
static member GetPathToDotNetFrameworkFile : string * Microsoft.Build.Utilities.TargetDotNetFrameworkVersion * Microsoft.Build.Utilities.DotNetFrameworkArchitecture -> string
Public Shared Function GetPathToDotNetFrameworkFile (fileName As String, version As TargetDotNetFrameworkVersion, architecture As DotNetFrameworkArchitecture) As String
Parameter
- fileName
- String
Der Dateiname, der im .NET Framework-Verzeichnis gesucht werden sollFile name to locate in the .NET Framework directory
- version
- TargetDotNetFrameworkVersion
Version der .NET Framework-Zielplattform.Version of the targeted .NET Framework
- architecture
- DotNetFrameworkArchitecture
Die gewünschte Architektur oder DotNetFrameworkArchitecture.Current für die Architektur, unter der dieser Prozess gerade ausgeführt wird.Desired architecture, or DotNetFrameworkArchitecture.Current for the architecture this process is currently running under.
Gibt zurück
Gibt "Null" zurück, wenn auf diesem Computer keine Ziel Frameworks vorhanden sind.Will return 'null' if there is no target frameworks on this machine.