forked from tsai/mathnet-numerics
11 changed files with 5170 additions and 0 deletions
@ -0,0 +1,209 @@ |
|||||
|
$Id: DevelopersGuide.txt 279 2006-12-11 22:43:40Z iko $ |
||||
|
|
||||
|
Developer's Guide for http://msbuildtasks.tigris.org/ |
||||
|
===================================================== |
||||
|
|
||||
|
Build Environment Prerequisites |
||||
|
------------------------------ |
||||
|
|
||||
|
- .NET2.0 |
||||
|
|
||||
|
- MSBuild; typically already installed as part of .NET2.0, |
||||
|
for example in C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe |
||||
|
|
||||
|
- NUnit 2.2.X (http://www.nunit.org/); |
||||
|
necessary to run the tests |
||||
|
|
||||
|
- Microsoft Visual SourceSafe(R) 2005; |
||||
|
the library Microsoft.VisualStudio.SourceSafe.Interop gets referenced |
||||
|
|
||||
|
- NDoc 1.3 (http://ndoc.sourceforge.net/) |
||||
|
additionally configure NDoc to use .NET2; see |
||||
|
http://ndoc.sourceforge.net/wiki/dotNet_2.0_Support |
||||
|
|
||||
|
- Microsoft Visual Studio 2005 as IDE |
||||
|
|
||||
|
Optional Services |
||||
|
----------------- |
||||
|
|
||||
|
- Subversion client (http://subversion.tigris.org/); |
||||
|
typically in C:\Program Files\Subversion |
||||
|
|
||||
|
- IIS |
||||
|
|
||||
|
- Email |
||||
|
|
||||
|
- ILMerge (http://research.microsoft.com/~mbarnett/ILMerge.aspx) |
||||
|
|
||||
|
- FxCop (http://www.gotdotnet.com/Team/FxCop/) |
||||
|
|
||||
|
|
||||
|
Before writing your own task |
||||
|
---------------------------- |
||||
|
|
||||
|
1. Checkout/Update the svn repository |
||||
|
http://msbuildtasks.tigris.org/svn/msbuildtasks/trunk |
||||
|
with your tigris user/password |
||||
|
to a local working copy <msbuildtasks> of your choice. |
||||
|
|
||||
|
2. Check that you can build the project on the command line: |
||||
|
** Important ** You must run the build from the command line before attempting to |
||||
|
open the Visual Studio solution file, in order to create some required files. |
||||
|
|
||||
|
- Add the directory of MSBuild.exe to your PATH environment variable, e.g. |
||||
|
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727. |
||||
|
|
||||
|
- Open cmd.exe in the top directory of the local working copy |
||||
|
where MSBuildTasks.proj is located. |
||||
|
|
||||
|
- Run "msbuild MSBuildTasks.proj"; |
||||
|
the default target "build" is executed |
||||
|
and should yield "Build succeeded". |
||||
|
|
||||
|
- Run "msbuild MSBuildTasks.proj /p:devel=true /p:nunitpath=c:\tools\nunit\bin /t:test" to run the NUnit test suite; |
||||
|
"Build succeeded." indicates that the tests have been executed successfully. |
||||
|
/p:devel=true is necessary when you want to work with |
||||
|
the assemblies of your own build, for example because |
||||
|
you did not run the installer of MSBuildCommunityTasks yet. |
||||
|
/p:nunitpath must point to the bin folder of your local installation of NUnit 2.2.x |
||||
|
|
||||
|
- Open <msbuildtasks>\Debug\test\TestReport.html |
||||
|
and check the test results. |
||||
|
Tests must be either successful |
||||
|
or ignored because an optional service |
||||
|
such as FTP server or Email server is missing |
||||
|
on your machine. |
||||
|
|
||||
|
3. Check that you can build the project in VS2005: |
||||
|
|
||||
|
- Open <msbuildtasks>\Source\MSBuild.Community.Tasks.sln. |
||||
|
|
||||
|
- Set MSBuild.Community.Tasks.Tests as startup project. |
||||
|
|
||||
|
- Open the properties of MSBuild.Community.Tasks.Tests; |
||||
|
in Debug/Start Action, set the external program to NUnit, |
||||
|
e.g. "C:\Program Files\NUnit 2.2.5\bin\nunit-gui.exe"; |
||||
|
in Debug/Start Options, set command line arguments to |
||||
|
"MSBuild.Community.Tasks.Tests.dll". |
||||
|
|
||||
|
- If you work with another version of NUnit, |
||||
|
it may be necessary to the NUnit library |
||||
|
from your NUnit's installation folder to |
||||
|
<msbuildtasks>\Libaries\NUnit\<version>\nunit.framework.dll |
||||
|
and to re-import it to the test project. |
||||
|
|
||||
|
- Run the project in debugging mode (F5); |
||||
|
NUnit starts up with the test suite; |
||||
|
Tests can be executed in interaction |
||||
|
with the debugger (breakpoints etc.) |
||||
|
|
||||
|
|
||||
|
Writing your own task |
||||
|
---------------------- |
||||
|
|
||||
|
1. Add a folder |
||||
|
<msbuildtasks>\Source\MSBuild.Community.Task\<MyTask> |
||||
|
and place <MyTask>.cs and related files in there; |
||||
|
always add a folder, even if you want to add just one file. |
||||
|
|
||||
|
2. Add third party libraries that you are allowed to redistribute to |
||||
|
<msbuildtasks>\Libraries\<ThirdParyTool>\<ReleaseNumber>\ |
||||
|
(e.g. <msbuildtasks>\Libraries\NUnit\2.2.5\nunit.framework.dll). |
||||
|
|
||||
|
3. For third party libraries that you are not allowed to redistribute, |
||||
|
add an entry in the prerequisits section of this document |
||||
|
together with information where to get it. |
||||
|
|
||||
|
4. Implement your task |
||||
|
|
||||
|
- Insert the character sequence '$', 'Id', '$' |
||||
|
(not concatenated here to avoid expansion by svn in this text itself) |
||||
|
somewhere in the fileheader comment. |
||||
|
|
||||
|
- When adding source files to the repository, set the metadata "svn:keywords" to "Id". |
||||
|
|
||||
|
From the command line: svn ps svn:keywords "Id" myNewTask.cs |
||||
|
|
||||
|
With TortoiseSVN: Right-click the myNewTask.cs in Explorer, choose Properties, change |
||||
|
to Subversion tab, choose svn-keywords from dropdown in Properties section, |
||||
|
enter "Id" in the text box, and press the Set button. |
||||
|
|
||||
|
- Avoid Console.WriteLine, use Log.LogMessage instead. |
||||
|
|
||||
|
- For log messages in your task, |
||||
|
use resource strings instead of hard coded strings, |
||||
|
e.g. "Log.LogError(Properties.Resources.XsltNoInputFiles);". |
||||
|
|
||||
|
- Recommended Tab width is 4. |
||||
|
|
||||
|
5. For your NUnit tests, add a folder |
||||
|
<msbuildtasks>\Source\MSBuild.Community.Task.Test\<MyTask> |
||||
|
and place <MyTask>Test.cs, <MyTask>Test.proj and related files in there; |
||||
|
always add a folder, even if you want to add just one file. |
||||
|
|
||||
|
6. Implement NUnit tests for your task in <MyTask>Test.cs; |
||||
|
this is important to have something for debugging. |
||||
|
|
||||
|
- Provide a description to every test, e.g. |
||||
|
[Test(Description = "Test the weather forecast task in rainy season")]. |
||||
|
|
||||
|
- From within your NUnit test, |
||||
|
check for the availability of an optional service |
||||
|
that your task depends on (such as FTP, IIS, Email); |
||||
|
when not available, it's good style to |
||||
|
Assert.Ignore("<MyTask> test needs <FancyService> to be executed") |
||||
|
instead of having the test just fail. |
||||
|
|
||||
|
- Also for optional services that a test depends on, |
||||
|
it's good style to have server access data |
||||
|
such as URLs, logins and paths |
||||
|
located in a config file |
||||
|
rather than hard coded in the test code. |
||||
|
|
||||
|
7. Add an entry to |
||||
|
<msbuildtasks>\Source\MSBuild.Community.Tasks\MSBuild.Community.Tasks.Targets |
||||
|
|
||||
|
8. Implement <MyTask>Test.proj |
||||
|
and add an entry in MSBuildTasks.proj so that it gets executed |
||||
|
as part of the "test-proj" target there; |
||||
|
this is important to test and demonstrate your task in action. |
||||
|
|
||||
|
- It's good style to have tests work only below |
||||
|
<msbuildtasks>\Build\<Configuration>\test\<TestSuite>\ |
||||
|
and to avoid having them creating any folders or files |
||||
|
in the source tree below |
||||
|
<msbuildtasks>\Source\ |
||||
|
|
||||
|
- If your test depend on an optional service or tool, |
||||
|
it's good style to have the test skipped by default |
||||
|
and to provide an extra switch like "/p:withILMerge=true" |
||||
|
to execute the test. |
||||
|
|
||||
|
9. Test your task |
||||
|
|
||||
|
- Run NUnit test interactively. |
||||
|
|
||||
|
- Run NUnit test on the command line. |
||||
|
|
||||
|
- Run "msbuild MSBuildTasks.proj /p:devel=true /p:nunitpath=c:\tools\nunit\bin /t:test", |
||||
|
which should include calling <MyTask>Test.proj |
||||
|
|
||||
|
10. Document your task |
||||
|
|
||||
|
- Provide all xml code comments for your task |
||||
|
(no need to do so for private members and for NUnit test code). |
||||
|
|
||||
|
- Provide an <example> section in the xml code comment |
||||
|
of your task class. |
||||
|
|
||||
|
- Make an entry for your task in |
||||
|
<msbuildtasks>\Documentation\Overview.html |
||||
|
|
||||
|
11. Before commiting your task, |
||||
|
- run "msbuild MSBuildTasks.proj /p:configuration=Release", |
||||
|
which treats warnings as errors. |
||||
|
|
||||
|
- run "msbuild Master.proj" to validate the nightly build |
||||
|
still works. You can also verify the documentation for your task |
||||
|
was included correctly in Documentation\MSBuild.Community.Tasks.chm |
||||
|
|
||||
Binary file not shown.
@ -0,0 +1,104 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8" ?> |
||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
|
<!-- $Id: MSBuild.Community.Tasks.Targets 303 2007-02-23 15:49:46Z pwelter34 $ --> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath> |
||||
|
<MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AspNet.InstallAspNet" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.AssemblyInfo" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Attrib" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlExecute" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FileUpdate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FtpUpload" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.FxCop" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GacUtil" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.GetSolutionProjects" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ILMerge" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Mail" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Move" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Add" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Divide" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Modulo" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Multiple" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Math.Subtract" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NDoc" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.NUnit" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Prompt" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryRead" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegistryWrite" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexMatch" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.RegexReplace" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Script" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceController" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.ServiceQuery" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Sleep" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolController" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolCreate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.AppPoolDelete" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryCreate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryDelete" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectoryScriptMap" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.IIS.WebDirectorySetting" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.InstallAssembly" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Install.UninstallAssembly" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Schema.TaskSchema" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SqlServer.ExecuteDDL" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssAdd" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckin" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssCheckout" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssClean" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssDiff" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssGet" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssHistory" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssLabel" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.SourceSafe.VssUndoCheckout" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCheckout" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnClient" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCopy" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnCommit" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnExport" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnUpdate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Subversion.SvnVersion" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Tfs.TfsVersion" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.TemplateFile" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Time" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Unzip" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Version" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.WebDownload" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlMassUpdate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xml.XmlQuery" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlRead" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.XmlUpdate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Xslt" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.Zip" /> |
||||
|
|
||||
|
<UsingTask AssemblyFile="$(MSBuildCommunityTasksLib)" TaskName="MSBuild.Community.Tasks.JavaScript.JSCompress" /> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<FxCopRuleAssemblies Include="UsageRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="SecurityRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="PortabilityRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="PerformanceRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="MobilityRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="InteroperabilityRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="GlobalizationRules.dll"/> |
||||
|
<FxCopRuleAssemblies Include="DesignRules.dll"/> |
||||
|
</ItemGroup> |
||||
|
</Project> |
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
@ -0,0 +1,504 @@ |
|||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||
|
<head> |
||||
|
<meta http-equiv="Content-Language" content="en-us" /> |
||||
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /> |
||||
|
<title>MSBuild Community Tasks Project</title> |
||||
|
<style type="text/css"> |
||||
|
body, input, select { |
||||
|
font-family: Verdana, Helvetica, Arial, sans-serif; |
||||
|
} |
||||
|
|
||||
|
code, pre { |
||||
|
font-family: 'Andale Mono', Courier, monospace; |
||||
|
} |
||||
|
|
||||
|
body, pre, code { |
||||
|
font-size: 10pt; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
<body> |
||||
|
<h2> |
||||
|
The MSBuild Community Tasks Project</h2> |
||||
|
<h3> |
||||
|
Mission</h3> |
||||
|
<p> |
||||
|
The MSBuild Community Tasks Project is an open source project for MSBuild tasks. |
||||
|
The goal of the project is to provide a collection of open source tasks for MSBuild. |
||||
|
</p> |
||||
|
<h3> |
||||
|
Join Project</h3> |
||||
|
<p> |
||||
|
Please join the MSBuild Community Tasks Project and help contribute in building |
||||
|
the tasks. |
||||
|
</p> |
||||
|
<p> |
||||
|
<a href="http://msbuildtasks.tigris.org/">http://msbuildtasks.tigris.org/</a></p> |
||||
|
<h3> |
||||
|
Current Community Tasks</h3> |
||||
|
<table border="0" cellpadding="3" cellspacing="0" width="90%" id="tasksTable"> |
||||
|
<tr> |
||||
|
<th align="left" width="190"> |
||||
|
Task</th> |
||||
|
<th align="left"> |
||||
|
Description</th> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
AppPoolController</td> |
||||
|
<td> |
||||
|
Allows control for an application pool on a local or remote machine with IIS installed.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
AppPoolCreate</td> |
||||
|
<td> |
||||
|
Creates a new application pool on a local or remote machine.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
AppPoolDelete</td> |
||||
|
<td> |
||||
|
Deletes an existing application pool on a local or remote machine.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
AssemblyInfo</td> |
||||
|
<td> |
||||
|
Generates an AssemblyInfo file using the attributes given.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Attrib</td> |
||||
|
<td> |
||||
|
Changes the attributes of files and/or directories</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>ExecuteDDL</td> |
||||
|
<td>Executes SqlServer batch scripts.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
FileUpdate</td> |
||||
|
<td> |
||||
|
Replace text in file(s) using a Regular Expression.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
FtpUpload</td> |
||||
|
<td> |
||||
|
Uploads a file using File Transfer Protocol (FTP).</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
FxCop</td> |
||||
|
<td> |
||||
|
Uses FxCop to analyze managed code assemblies and reports on their design best-practice |
||||
|
compliance.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
GetSolutionProjects</td> |
||||
|
<td> |
||||
|
Returns a list of projects within a solution</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
InstallAspNet</td> |
||||
|
<td> |
||||
|
Installs and register script mappings for ASP.NET</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
InstallAssembly</td> |
||||
|
<td> |
||||
|
Uses InstallUtil.exe to execute the Install method on Installer classes within assemblies.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
JSCompress</td> |
||||
|
<td> |
||||
|
Compresses JavaScript source files by removing comments and unnecessary whitespace, |
||||
|
which typically reduces the size by half and results in faster downloads |
||||
|
and code that is harder to read.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Mail</td> |
||||
|
<td> |
||||
|
Sends an email message.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Math.Add</td> |
||||
|
<td> |
||||
|
Add numbers.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Math.Divide</td> |
||||
|
<td> |
||||
|
Divide numbers.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Math.Modulo</td> |
||||
|
<td> |
||||
|
Performs the modulo operation on numbers.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Math.Multiple</td> |
||||
|
<td> |
||||
|
Multiple numbers.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Math.Subtract</td> |
||||
|
<td> |
||||
|
Subtract numbers.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Move</td> |
||||
|
<td> |
||||
|
Moves files on the filesystem to a new location.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
NDoc</td> |
||||
|
<td> |
||||
|
Runs NDoc to create documentation.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
NUnit</td> |
||||
|
<td> |
||||
|
Runs tests using the NUnit.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Prompt</td> |
||||
|
<td> |
||||
|
Displays a message on the console and waits for user input.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
RegexMatch</td> |
||||
|
<td> |
||||
|
Filters an item group with a regular expression</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
RegexReplace</td> |
||||
|
<td> |
||||
|
Replaces strings within items from an item group with a regular expression</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
RegistryRead</td> |
||||
|
<td> |
||||
|
Reads a value from the Registry.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
RegistryWrite</td> |
||||
|
<td> |
||||
|
Writes a value to the Registry.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Script</td> |
||||
|
<td> |
||||
|
Executes code contained within the task.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
ServiceController</td> |
||||
|
<td> |
||||
|
Task that can control a Windows service.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
ServiceQuery</td> |
||||
|
<td> |
||||
|
Task that can determine the status of a service.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Sleep</td> |
||||
|
<td> |
||||
|
A task for sleeping for a specified period of time.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SqlExecute</td> |
||||
|
<td> |
||||
|
Executes a SQL command</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnCheckout</td> |
||||
|
<td> |
||||
|
Checkout files from Subversion</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnClient</td> |
||||
|
<td> |
||||
|
Subversion Client</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnCommit</td> |
||||
|
<td> |
||||
|
Commit files to Subversion</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnCopy</td> |
||||
|
<td> |
||||
|
Copies a file or path within Subversion</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnExport</td> |
||||
|
<td> |
||||
|
Export files from Subversion</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnInfo</td> |
||||
|
<td> |
||||
|
Get Subversion information for a file or directory.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnUpdate</td> |
||||
|
<td> |
||||
|
Update files from Subversion</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
SvnVersion</td> |
||||
|
<td> |
||||
|
Get Subversion revision number of a local copy</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
TaskSchema</td> |
||||
|
<td> |
||||
|
Generates a XSD schema of the MSBuild tasks in an assembly.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>TemplateFile</td> |
||||
|
<td>Replaces tokens in a file.</td> |
||||
|
</tr> |
||||
|
|
||||
|
<tr> |
||||
|
<td> |
||||
|
TfsVersion</td> |
||||
|
<td> |
||||
|
Determines the changeset in a local Team Foundation Server workspace (In progress)</td> |
||||
|
</tr> |
||||
|
|
||||
|
<tr> |
||||
|
<td> |
||||
|
Time</td> |
||||
|
<td> |
||||
|
Gets the current date and time.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
UninstallAssembly</td> |
||||
|
<td> |
||||
|
Uses InstallUtil.exe to execute the Uninstall method on Installer classes within assemblies.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Unzip</td> |
||||
|
<td> |
||||
|
Unzip a file to a target directory.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Version</td> |
||||
|
<td> |
||||
|
Generates version information based on various algorithms</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssAdd</td> |
||||
|
<td> |
||||
|
Adds files to a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssCheckin</td> |
||||
|
<td> |
||||
|
Checks in files to a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssCheckout</td> |
||||
|
<td> |
||||
|
Checks out files from a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssClean</td> |
||||
|
<td> |
||||
|
Removes Visual SourceSafe binding information and status files from a Visual Studio |
||||
|
solution tree.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssDiff</td> |
||||
|
<td> |
||||
|
Generates a diff between two versions of an item in a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssGet</td> |
||||
|
<td> |
||||
|
Gets the latest version of a file or project from a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssHistory</td> |
||||
|
<td> |
||||
|
Generates an XML file containing the history of an item in a Visual SourceSafe database |
||||
|
between two dates or labels.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssLabel</td> |
||||
|
<td> |
||||
|
Labels an item in a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
VssUndoCheckout</td> |
||||
|
<td> |
||||
|
Cancels a checkout of an item from a Visual SourceSafe database.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
WebDirectoryCreate</td> |
||||
|
<td> |
||||
|
Creates a new web directory on a local or remote machine.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
WebDirectoryDelete</td> |
||||
|
<td> |
||||
|
Deletes a web directory on a local or remote machine</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
WebDirectoryScriptMap</td> |
||||
|
<td> |
||||
|
Sets an application mapping for a filename extension on an existing web directory.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
WebDirectorySetting</td> |
||||
|
<td> |
||||
|
Reads or modifies a configuration setting on an existing web directory</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
WebDownload</td> |
||||
|
<td> |
||||
|
Downloads a resource with the specified URI to a local file.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Xml.XmlMassUpdate</td> |
||||
|
<td> |
||||
|
Performs multiple updates on an XML file</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Xml.XmlQuery</td> |
||||
|
<td> |
||||
|
Reads a value or values from lines of XML</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
XmlRead</td> |
||||
|
<td> |
||||
|
Reads a value from a XML document using a XPath.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
XmlWrite</td> |
||||
|
<td> |
||||
|
Updates a XML document using a XPath.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Xslt</td> |
||||
|
<td> |
||||
|
Merge and transform a set of xml files.</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td> |
||||
|
Zip</td> |
||||
|
<td> |
||||
|
Create a zip file with the files specified. |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
<h3> |
||||
|
Getting Started</h3> |
||||
|
<p> |
||||
|
In order to use the tasks in this project, you need to import the MSBuild.Community.Tasks.Targets |
||||
|
files. If you installed the project with the msi installer, you can use the |
||||
|
following.<br /> |
||||
|
<span style="font-size: 10pt; color: blue; font-family: 'Courier New'"></span></p> |
||||
|
<p> |
||||
|
<span style="font-size: 10pt; color: blue; font-family: 'Courier New'"><</span><span |
||||
|
style="font-size: 10pt; color: maroon; font-family: 'Courier New'">Import</span><span |
||||
|
style="font-size: 10pt; color: blue; font-family: 'Courier New'"> </span> |
||||
|
<span style="font-size: 10pt; color: red; font-family: 'Courier New'">Project</span><span |
||||
|
style="font-size: 10pt; color: blue; font-family: 'Courier New'">=</span><span style="font-size: 10pt; |
||||
|
font-family: 'Courier New'">"<span style="color: blue">$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets</span>"<span |
||||
|
style="color: blue">/></span></span></p><h3> |
||||
|
Related resources</h3> |
||||
|
<ul> |
||||
|
<li>MSBuild Community Tasks - <a href="http://msbuildtasks.tigris.org/">http://msbuildtasks.tigris.org/</a></li> |
||||
|
<li>MSBuild Tasks - <a href="http://msbuildtasks.com/default.aspx">http://msbuildtasks.com/default.aspx</a></li> |
||||
|
<li>MSBuild Team Blog - <a href="http://blogs.msdn.com/msbuild/default.aspx">http://blogs.msdn.com/msbuild/default.aspx</a></li> |
||||
|
<li>MSBuild Reference - <a href="http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx"> |
||||
|
http://msdn2.microsoft.com/en-us/library/0k6kkbsd.aspx</a></li> |
||||
|
</ul> |
||||
|
<h3> |
||||
|
License</h3> |
||||
|
<pre>Copyright © 2005-2007 Paul Welter. All rights reserved. |
||||
|
|
||||
|
Redistribution and use in source and binary forms, with or without |
||||
|
modification, are permitted provided that the following conditions |
||||
|
are met: |
||||
|
|
||||
|
1. Redistributions of source code must retain the above copyright |
||||
|
notice, this list of conditions and the following disclaimer. |
||||
|
2. Redistributions in binary form must reproduce the above copyright |
||||
|
notice, this list of conditions and the following disclaimer in the |
||||
|
documentation and/or other materials provided with the distribution. |
||||
|
3. The name of the author may not be used to endorse or promote products |
||||
|
derived from this software without specific prior written permission. |
||||
|
|
||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR |
||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
|
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
||||
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
||||
|
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</pre> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,18 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
||||
|
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> |
||||
|
<id>MathNet.Numerics</id> |
||||
|
<version>2011.2.18.1097</version> |
||||
|
<title>Math.NET Numerics</title> |
||||
|
<description>Math.NET Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use.</description> |
||||
|
<authors>Marcus Cuda, Christoph Ruegg, Jurgen Van Gael</authors> |
||||
|
<owners>Christoph Ruegg</owners> |
||||
|
<projectUrl>http://numerics.mathdotnet.com/</projectUrl> |
||||
|
<licenseUrl>http://mathnetnumerics.codeplex.com/license</licenseUrl> |
||||
|
<requireLicenseAcceptance>false</requireLicenseAcceptance> |
||||
|
<tags>Math Mathematics Numerics</tags> |
||||
|
<dependencies> |
||||
|
<dependency id="zlib.net" version="1.0" /> |
||||
|
</dependencies> |
||||
|
</metadata> |
||||
|
</package> |
||||
@ -0,0 +1,42 @@ |
|||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="BuildPackages" ToolsVersion="4.0"> |
||||
|
<UsingTask AssemblyFile="$(MSBuildProjectDirectory)/../MSBuild.Community.Tasks.v1.2.0.306/MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.XmlUpdate" /> |
||||
|
<UsingTask AssemblyFile="$(MSBuildProjectDirectory)/../MSBuild.ExtensionPack.4.0.2.0/MSBuild.ExtensionPack.dll" TaskName="MSBuild.ExtensionPack.FileSystem.RoboCopy" /> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<OutLib>$(MSBuildProjectDirectory)/../../out/lib</OutLib> |
||||
|
<OutNuGetPackages>$(MSBuildProjectDirectory)/../../out/packages/NuGet</OutNuGetPackages> |
||||
|
<NumericsPack>$(MSBuildProjectDirectory)/Numerics</NumericsPack> |
||||
|
<NuGetExe>$(MSBuildProjectDirectory)/../../tools/NuGet-1.2/NuGet.exe</NuGetExe> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<NumericsNet40 Include=" |
||||
|
$(OutLib)/Net40/MathNet.Numerics.dll;$(OutLib)/Net40/MathNet.Numerics.pdb;$(OutLib)/Net40/MathNet.Numerics.xml" /> |
||||
|
<NumericsSL4 Include=" |
||||
|
$(OutLib)/SL4/MathNet.Numerics.dll;$(OutLib)/SL4/MathNet.Numerics.pdb;$(OutLib)/SL4/MathNet.Numerics.xml;" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<Target Name="CopyContentFiles"> |
||||
|
<RemoveDir Directories="$(NumericsPack)/lib" /> |
||||
|
<Copy SourceFiles="@(NumericsNet40)" DestinationFolder="$(NumericsPack)/lib/Net40" /> |
||||
|
<Copy SourceFiles="@(NumericsSL4)" DestinationFolder="$(NumericsPack)/lib/SL4" /> |
||||
|
<!-- <RoboCopy Source="$(MSBuildProjectDirectory)/../../out/lib/" Destination="$(MSBuildProjectDirectory)/Numerics/lib" Files="*.*" Options="/MIR" /> --> |
||||
|
</Target> |
||||
|
|
||||
|
<Target Name="UpdateNuspec" DependsOnTargets="CopyContentFiles"> |
||||
|
<GetAssemblyIdentity AssemblyFiles="$(NumericsPack)/lib/Net40/MathNet.Numerics.dll"> |
||||
|
<Output TaskParameter="Assemblies" ItemName="MathNetNumericsAssemblyInfo"/> |
||||
|
</GetAssemblyIdentity> |
||||
|
<XmlUpdate |
||||
|
Prefix="n" |
||||
|
Namespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" |
||||
|
XmlFileName="$(NumericsPack)/MathNet.Numerics.nuspec" |
||||
|
XPath="//package/n:metadata/n:version" |
||||
|
Value="%(MathNetNumericsAssemblyInfo.Version)"/> |
||||
|
</Target> |
||||
|
|
||||
|
<Target Name="BuildPackages" DependsOnTargets="UpdateNuspec"> |
||||
|
<Exec Command="$(NuGetExe) pack $(NumericsPack)/MathNet.Numerics.nuspec /v /o $(OutNuGetPackages)" /> |
||||
|
</Target> |
||||
|
|
||||
|
</Project> |
||||
Binary file not shown.
Loading…
Reference in new issue