本文整理汇总了C#中Microsoft.Build.BuildEngine.Engine类的典型用法代码示例。如果您正苦于以下问题:C# Engine类的具体用法?C# Engine怎么用?C# Engine使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Engine类属于Microsoft.Build.BuildEngine命名空间,在下文中一共展示了Engine类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetUp
public void SetUp()
{
// Whole bunch of setup code.
XmlElement taskNode = new XmlDocument().CreateElement("MockTask");
LoadedType taskClass = new LoadedType(typeof(MockTask), new AssemblyLoadInfo(typeof(MockTask).Assembly.FullName, null));
engine = new Engine(@"c:\");
Project project = new Project(engine);
EngineCallback engineCallback = new EngineCallback(engine);
taskExecutionModule = new MockTaskExecutionModule(engineCallback);
int handleId = engineCallback.CreateTaskContext(project, null, null, taskNode, EngineCallback.inProcNode, new BuildEventContext(BuildEventContext.InvalidNodeId, BuildEventContext.InvalidTargetId, BuildEventContext.InvalidProjectContextId, BuildEventContext.InvalidTaskId));
TaskEngine taskEngine = new TaskEngine
(
taskNode,
null, /* host object */
"In Memory",
project.FullFileName,
engine.LoggingServices,
handleId,
taskExecutionModule,
null
);
taskEngine.TaskClass = taskClass;
engineProxy = new EngineProxy(taskExecutionModule, handleId, project.FullFileName, project.FullFileName, engine.LoggingServices, null);
taskExecutionModule2 = new MockTaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode);
engineProxy2 = new EngineProxy(taskExecutionModule2, handleId, project.FullFileName, project.FullFileName, engine.LoggingServices, null);
}
示例2: CreateEngine
private static Engine CreateEngine(FrameworkVersions toolsVersion, string frameworkPath)
{
Engine engine = new Engine(frameworkPath);
Version fullVersion = engine.GetType().Assembly.GetName().Version;
string version = fullVersion.ToString(2);
if (toolsVersion == FrameworkVersions.v30 && version == "2.0")
version = "3.0";//these use the same build runtime: 2.0/3.0
if (toolsVersion == FrameworkVersions.v45 && version == "4.0")
version = "4.5";//these use the same build runtime: 4.0/4.5
if (version.Replace(".", "") != toolsVersion.ToString().TrimStart('v'))
throw new ApplicationException(String.Format("Expected runtime {0}, found ({1}){2}.", toolsVersion, version, fullVersion));
Log.Verbose("Using build engine: {0}", engine.GetType().Assembly.FullName);
if (toolsVersion == FrameworkVersions.v20 || toolsVersion == FrameworkVersions.v30)
engine.GlobalProperties.SetProperty("MSBuildToolsPath", frameworkPath);
//<property name="FrameworkSDKDir" value="%ProgramFiles%\Microsoft.NET\SDK\v2.0\" global="true"/>
//if (!Directory.Exists(engine.GlobalProperties.SetProperty()))
//{ }
new MSBuildLog(engine);
return engine;
}
示例3: XnaContentProject
public XnaContentProject(Task task, string msBuildPath, string xnaInstallPath)
{
m_engine = new Engine(msBuildPath);
m_engine.RegisterLogger(new XnaContentLogger(task));
m_project = new Project(m_engine);
m_project.AddNewUsingTaskFromAssemblyName("BuildContent", "Microsoft.Xna.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d");
m_project.AddNewUsingTaskFromAssemblyName("BuildXact", "Microsoft.Xna.Framework.Content.Pipeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d");
// Add our Content Pipeline Assemblies
m_pipelineGroup = m_project.AddNewItemGroup();
m_contentGroup = m_project.AddNewItemGroup();
m_contentTarget = m_project.Targets.AddNewTarget("_BuildXNAContentLists");
// Add our Build target
m_xnaTarget = m_project.Targets.AddNewTarget("Build");
m_xnaTarget.DependsOnTargets = "_BuildXNAContentLists";
// Add Default Pipeline Assemblies.
AddPilepineAssembly(xnaInstallPath + "Microsoft.Xna.Framework.Content.Pipeline.EffectImporter.dll");
AddPilepineAssembly(xnaInstallPath + "Microsoft.Xna.Framework.Content.Pipeline.FBXImporter.dll");
AddPilepineAssembly(xnaInstallPath + "Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.dll");
AddPilepineAssembly(xnaInstallPath + "Microsoft.Xna.Framework.Content.Pipeline.XImporter.dll");
}
示例4: Introspector
internal Introspector(Engine parentEngine, ProjectManager projectManager, NodeManager nodeManager)
{
this.parentEngine = parentEngine;
this.projectManager = projectManager;
this.nodeManager = nodeManager;
this.ignoreTimeout = 0;
}
示例5: TestCondition1
public void TestCondition1 ()
{
Engine engine = new Engine (Consts.BinPath);
Project proj = engine.CreateNewProject ();
string documentString = @"
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<PropertyGroup>
<A Condition='true'></A>
<B Condition='false'></B>
<C Condition='TRUE'></C>
<D Condition='FALSE'></D>
<E Condition=''>A</E>
</PropertyGroup>
</Project>
";
proj.LoadXml (documentString);
Assert.IsNotNull (proj.EvaluatedProperties ["A"], "A1");
Assert.IsNull (proj.EvaluatedProperties ["B"], "A2");
Assert.IsNotNull (proj.EvaluatedProperties ["C"], "A3");
Assert.IsNull (proj.EvaluatedProperties ["D"], "A4");
Assert.IsNotNull (proj.EvaluatedProperties ["E"], "A5");
}
示例6: TestItems1
public void TestItems1 ()
{
Engine engine = new Engine (Consts.BinPath);
Project proj = engine.CreateNewProject ();
string documentString = @"
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<ItemGroup>
<Item0 Include='A' />
<Item1 Include='A;B;C' />
<Item2 Include='@(Item1);A;D' />
<Item3 Include='@(Item2)' Exclude='A' />
<Item4 Include='@(Item1);Q' Exclude='@(Item2)' />
<Item5 Include='@(Item1)' Exclude='@(Item2)' />
<Item6 Include='@(Item2)' Exclude='@(Item1)' />
<Item7 Include='@(item_that_doesnt_exist)' />
</ItemGroup>
</Project>
";
proj.LoadXml (documentString);
CheckItems (proj, "Item0", "A1", "A");
CheckItems (proj, "Item1", "A2", "A", "B", "C");
CheckItems (proj, "Item2", "A3", "A", "B", "C", "A", "D");
CheckItems (proj, "Item3", "A4", "B", "C", "D");
CheckItems (proj, "Item4", "A5", "Q");
CheckItems (proj, "Item5", "A6");
CheckItems (proj, "Item6", "A7", "D");
CheckItems (proj, "Item7", "A8");
}
示例7: TestAssemblyFile2
public void TestAssemblyFile2 ()
{
string documentString = @"
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<UsingTask
AssemblyFile='Test/resources/TestTasks.dll'
TaskName='SimpleTask'
/>
</Project>
";
engine = new Engine (Consts.BinPath);
project = engine.CreateNewProject ();
project.LoadXml (documentString);
IEnumerator en = project.UsingTasks.GetEnumerator ();
en.MoveNext ();
UsingTask ut = (UsingTask) en.Current;
Assert.AreEqual ("Test/resources/TestTasks.dll", ut.AssemblyFile, "A1");
Assert.IsNull (ut.AssemblyName, "A2");
Assert.AreEqual (null, ut.Condition, "A3");
Assert.AreEqual (false, ut.IsImported, "A4");
Assert.AreEqual ("SimpleTask", ut.TaskName, "A5");
}
示例8: ProjectBuilder
public ProjectBuilder (BuildEngine buildEngine, Engine engine, string file)
{
this.file = file;
this.engine = engine;
this.buildEngine = buildEngine;
consoleLogger = new MDConsoleLogger (LoggerVerbosity.Normal, LogWriteLine, null, null);
}
示例9: Initialize
public void Initialize()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
engine = new Engine();
project = new Project(engine);
}
示例10: TestGetEnumerator
public void TestGetEnumerator ()
{
string documentString = @"
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<UsingTask
AssemblyFile='Test/resources/TestTasks.dll'
TaskName='TrueTestTask'
/>
<UsingTask
AssemblyFile='Test/resources/TestTasks.dll'
TaskName='FalseTestTask'
/>
</Project>
";
engine = new Engine (Consts.BinPath);
project = engine.CreateNewProject ();
project.LoadXml (documentString);
IEnumerator en = project.UsingTasks.GetEnumerator ();
en.MoveNext ();
Assert.AreEqual ("Test/resources/TestTasks.dll", ((UsingTask) en.Current).AssemblyFile, "A1");
Assert.AreEqual ("TrueTestTask", ((UsingTask) en.Current).TaskName, "A2");
en.MoveNext ();
Assert.AreEqual ("Test/resources/TestTasks.dll", ((UsingTask) en.Current).AssemblyFile, "A3");
Assert.AreEqual ("FalseTestTask", ((UsingTask) en.Current).TaskName, "A4");
Assert.IsFalse (en.MoveNext ());
}
示例11: TestExecution1
public void TestExecution1 ()
{
Engine engine;
Project project;
string documentString = @"
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
<ItemGroup>
<Dir Include='b' />
<Dir Include='c' />
<Dir Include='d\e' />
</ItemGroup>
<Target Name='1'>
<CombinePath BasePath='a' Paths='@(Dir)'>
<Output
TaskParameter='CombinedPaths'
ItemName='Out'
/>
</CombinePath>
</Target>
</Project>
";
engine = new Engine (Consts.BinPath);
project = engine.CreateNewProject ();
project.LoadXml (documentString);
Assert.IsTrue (project.Build ("1"), "A1");
BuildItemGroup output = project.GetEvaluatedItemsByName ("Out");
Assert.AreEqual (3, output.Count, "A2");
Assert.AreEqual (Path.Combine ("a", "b"), output [0].FinalItemSpec, "A3");
Assert.AreEqual (Path.Combine ("a", "c"), output [1].FinalItemSpec, "A4");
Assert.AreEqual (Path.Combine ("a", Path.Combine ("d", "e")), output [2].FinalItemSpec, "A5");
}
示例12: Initialize
public void Initialize()
{
engine = new Engine();
myProject = new Project(engine);
myLogger = new MockLogger();
myProject.ParentEngine.RegisterLogger(myLogger);
}
示例13: ConstructorEngineNoParameters
public void ConstructorEngineNoParameters()
{
Engine e = new Engine();
string binPath20 = GetBinPathFromRegistry("2.0");
if (binPath20 == null)
{
// if 2.0 can't be found in the registry, it's still the default,
// but we need to get it another way.
binPath20 = FrameworkLocationHelper.PathToDotNetFrameworkV20;
}
if (binPath20 != null)
{
Assertion.AssertEquals("2.0", e.DefaultToolsVersion);
Assertion.AssertEquals(binPath20, e.BinPath);
}
else
{
Assertion.AssertEquals("4.0", e.DefaultToolsVersion);
Assertion.AssertEquals(GetBinPathFromRegistry("4.0"), e.BinPath);
}
Assertion.AssertEquals(true, e.BuildEnabled);
Assertion.AssertEquals(false, e.IsBuilding);
Assertion.AssertEquals(false, e.OnlyLogCriticalEvents);
}
示例14: SimpleAddAndRetrieveProject
public void SimpleAddAndRetrieveProject()
{
// Initialize engine.
Engine engine = new Engine(@"c:\");
// Instantiate new project manager.
ProjectManager projectManager = new ProjectManager();
// Set up variables that represent the information we would be getting from
// the "MSBuild" task.
string fullPath = @"c:\rajeev\temp\myapp.proj";
BuildPropertyGroup globalProperties = new BuildPropertyGroup();
globalProperties.SetProperty("Configuration", "Debug");
// Create a new project that matches the information that we're pretending
// to receive from the MSBuild task.
Project project1 = new Project(engine);
project1.FullFileName = fullPath;
project1.GlobalProperties = globalProperties;
// Add the new project to the ProjectManager.
projectManager.AddProject(project1);
// Try and retrieve the project from the ProjectManager based on the fullpath + globalprops,
// and make sure we get back the same project we added.
Assertion.AssertEquals(project1, projectManager.GetProject(fullPath, globalProperties, null));
}
示例15: Build
public static bool Build(Project pProj, OutputWindowPane pPane, string pTarget, NameValueCollection pParams)
{
Microsoft.Build.BuildEngine.Engine buildEngine = new Microsoft.Build.BuildEngine.Engine();
BuildExecutor executor = new BuildExecutor(pPane);
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\.NETFramework", false);
if (key == null) {
throw new Exception("Failed to determine .NET Framework install root - no .NETFramework key");
}
string installRoot = key.GetValue("InstallRoot") as string;
if (installRoot == null) {
throw new Exception("Failed to determine .NET Framework install root - no InstallRoot value");
}
key.Close();
buildEngine.BinPath = Path.Combine(installRoot, string.Format("v{0}.{1}.{2}", Environment.Version.Major, Environment.Version.Minor, Environment.Version.Build));
buildEngine.RegisterLogger(executor);
executor.Verbosity = LoggerVerbosity.Normal;
BuildPropertyGroup properties = new BuildPropertyGroup();
foreach (string propKey in pParams.Keys) {
string val = pParams[propKey];
properties.SetProperty(propKey, val, true);
}
return buildEngine.BuildProjectFile(pProj.FileName, new string[]{pTarget}, properties);
}