Giter Club home page Giter Club logo

msbuildextensionpack's Introduction

Build status Documentation Status

The MSBuild Extension Pack provides a collection of over 480 MSBuild Tasks, MSBuild Loggers and MSBuild TaskFactories.

A high level summary of what the tasks currently cover includes the following:

  • System Items: Active Directory, Certificates, COM+, Console, Date and Time, Drives, Environment Variables, Event Logs, Files and Folders, FATP, GAC, Network, Performance Counters, Registry, Services, Sound
  • Code: Assemblies, CAB Files, Code Signing, DynamicExecute, File Detokenisation, GUID’s, Mathematics, Strings, Threads, Xml, Zip Files
  • Applications: BizTalk 2006 / 2009, Email, IIS6, IIS7, MSBuild, SourceSafe, SQL Server 2005 /2008, StyleCop, Twitter, Team Foundation Server, Visual Basic 6, Windows Virtual PC, WMI

The MSBuild Extension Pack is provided in two versions. The 3.5.* version supports the .Net Framework 3.5 and the 4.0.* version supports the .Net Framework 4.0.

The MSBuild Extension Pack implements a TaskAction based design which aims to improve usability and maintenance whilst reducing the code base, e.g. to start or stop a website, typically two task files would be created to perform each task, whereas the MSBuild Extension Pack accomplishes this in a single task file using TaskAction=”Stop” and TaskAction=”Start”.

Each task is documented and provided with an example in the help file. Where applicable, tasks are remote enabled, simply specify a MachineName with optional credentials and the task will target the remote machine.

Feedback

Direct feedback via the Issues

You may also wish to follow on Twitter

If you are a frequent user of MSBuild, take a look at MSBuild Explorer

msbuildextensionpack's People

Contributors

adam-s-daniel avatar askrinnik avatar baerbradford avatar drauch avatar jeanpierredetiege avatar katlimruiz avatar kevindaub avatar lukas-ais avatar mikefourie avatar oromand avatar oscarcenteno avatar patrickmaurer avatar probackpacker avatar synarque avatar tharend avatar wbradney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

msbuildextensionpack's Issues

AssemblyInfo task DirectSet for AssemblyRevisionType and AssemblyBuildNumberType

The XML documentation for the AssemblyInfo indicates DirectSet is a valid value for AssemblyRevisionType and AssemblyBuildNumberType.
https://github.com/mikefourie/MSBuildExtensionPack/search?utf8=%E2%9C%93&q=DirectSet

UpdateVesrionProperty does not contain a path for this enum value.
https://github.com/mikefourie/MSBuildExtensionPack/blob/7f7ea8c436c03a1fb224fb6e973fba1c9d4d5275/Solutions/Main/Framework/Framework/AssemblyInfo/AssemblyInfo.cs#L1276

And it does not exist in the Enum.
https://github.com/mikefourie/MSBuildExtensionPack/blob/7f7ea8c436c03a1fb224fb6e973fba1c9d4d5275/Solutions/Main/Framework/Framework/AssemblyInfo/AssemblyInfo.cs#L18

I'd very much like to have this feature. Would you accept a pull request?

Assembly File/Version Reset After Editing Project File

When a project file (csproj) reloads after editing it, the assembly file/version numbers are reset to the initial values in OOTB format x.y.mmdd.nn, replacing the existing values, and this even though there is config to specify a different format:

<AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)"
 AssemblyFileBuildNumberType="DateString" AssemblyFileBuildNumberFormat="yyMMdd"
 AssemblyFileRevisionType="AutoIncrement" AssemblyFileRevisionFormat="00" />

Using v4.0.11.0.

Full config:

<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\4.0\MSBuild.ExtensionPack.VersionNumber.targets"/>
<Target Name="Build" DependsOnTargets="AssemblyFileVersion" />
<Target Name="AssemblyFileVersion">
  <Message Text="Update AssemblyFileVersion..." />
  <ItemGroup>
    <AssemblyInfoFiles Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)" AssemblyFileBuildNumberType="DateString" AssemblyFileBuildNumberFormat="yyMMdd"  AssemblyFileRevisionType="AutoIncrement" AssemblyFileRevisionFormat="00" />
</Target>

Nunit: The "TimeTaken" parameter is not marked for output

Hi
(First off, thanks for your great work)

I'm currently debugging an odd behavior with nunit. I've got some unit test which is reported to take 3.5seconds, but the build actually takes 30 seconds longer than without it. But this is only when run by means of msbuild, not when run inside visual studio.

So i was trying to access the MSBuild.ExtensionPack.CodeQuality.NUnit TimeTaken Property.
As per the documentation it seems i could access it as follows:

    <MSBuild.ExtensionPack.CodeQuality.NUnit
        Assemblies="$(TargetPath)"
        OutputXmlFile="$(TestResultsFile)"
        ToolPath="C:\Program Files (x86)\NUnit 2.6.3\bin\"
        Framework="net-4.5.1" 
        Version="2.6.3" >
        <Output TaskParameter="TimeTaken" PropertyName="TimeTaken"/>   
     </MSBuild.ExtensionPack.CodeQuality.NUnit>

However, msbuild then complains: The "TimeTaken" parameter is not marked for output by the "MSBuild.ExtensionPack.CodeQuality.NUnit" task.

Now it might be that I'm doing something wrong, but for the other result values (Total, NotRun,...) the documentation shows to access them using the <Output ...> way. So i think that the [Output]-Attribute has just been forgotten on the Property.

Am i right? I'll gladly provide a pull request.

XML logger produces invalid XML sometimes

Our VS project has a custom build step which is running Grunt to build some JS code. Grunt output includes some coloring escape sequences and these characters break XML generated by XML logger. For example, xsltproc from libxslt package fails wtih this error: "parser error : PCDATA invalid Char value 27".
As a workaround it is possible to pass --no-color argument to Grunt but I think XML logger should properly escape characters from MSBuild output.

xpath question regarding using MSBuild.ExtensionPack.Xml.XmlFile : AddElement

I am trying to export the TFS global list , update it and import via witadmin
Basically we want to add build numbers that our uses a non-tfs format

I can check for existence and read them OK
MY issue is writing bvalues to the XM L file, I am not sure of the xpath value that is necessary to accomplish this

Suggestions??

SAMPLE GlobalList.xml

<gl:GLOBALLISTS xmlns:gl="http://schemas.microsoft.com/VisualStudio/2005/workitemtracking/globallists">
































/gl:GLOBALLISTS

MSBUILD Script

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\witadmin.exe $(MSBuildProjectDirectory)\GlobalList.xml C:\Temp\GlobalList.xml $(RELEASE_VERSION_DOT).$(BUILDNUMBER)

<MSBuild.ExtensionPack.Xml.XmlFile
File="$(GLFile)"
XPath='//LISTITEM[@value="$(BldNum)"]'
TaskAction="ReadElements">

</MSBuild.ExtensionPack.Xml.XmlFile>

<MSBuild.ExtensionPack.Xml.XmlFile
File="$(GLFile)"
XPath='/GLOBALLIST[@name="BuildNumbers"]/LISTITEM'
TaskAction="AddElement"
Key="value"
Value="$(BldNum)">
</MSBuild.ExtensionPack.Xml.XmlFile>

Add nologo support to NUnit3

Can commandLineBuilder.AppendSwitch("/nologo"); be added to MSBuild.ExtensionPack.CodeQuality.NUnit3, it appears in MSBuild.ExtensionPack.CodeQuality.NUnit

Relation between GitHub releases and NuGet packages?

I see release 4.0.12.0 here on GitHub and on NuGet version 1.7.0.0 released around the same time. Are they supposed to be same thing, i.e. same contents?

I'm asking because I was expecting the NuGet version to include 7f7ea8c - change in MSBuild.ExtensionPack.VersionNumber.targets, but it doesn't. What gives?

No SSL support for FTP

Is it possible for MSBuild.ExtensionPack.Communication.Ftp task to establish SSL connection. Current task only supports standard ftp connection.

Svn: ArgumentNullException: Parameter "metadataValue" cannot be null

at Microsoft.Build.Shared.ErrorUtilities.VerifyThrowArgumentNull(...)
at Microsoft.Build.Utilities.SetMetadata(String metadataName, String metadataValue)
at MSBuild.ExtensionPack.Subversion.Svn.Set(ITaskItem taskItem, String metadataName, String metadataValue)

Error happens when setting CommitAuthor, when svn has anonymous commits (so entry.commit.author == null)

AssemblyFileRevisionType AutoIncrement

I just wanted to verify where the AutoIncrement base number is pulled from.
It appears it's reading the base value from the AssemblyInfo.* file.
MSBuildExtensionPack/Solutions/Main/Framework/Framework/AssemblyInfo/AssemblyInfo.cs

If I pull clean sources from my scm on each build, I am assuming (and tests show) that the AutoIncrement schema will not work.

Is there an alternate storage mechanism for the AutoIncrement number I'm missing?

nuget package not working well in vs2013

I'm new to nuget so I'm not sure I'm doing it right but I've got a .proj file being invoked by a custom build step in a .vcxproj (native c++ project) and the .proj invokes a task from the pack. I had been installing the pack on the build platform and importing the targets file using the installation path explicitly. Switching the the nuget has lots of benefits but....

  1. the installation is not "sticky" -- after installing it in the host project the files are downloaded but the project fails to remember that it is installed. So when I get the sources onto a virgin build machine the pack nuget isn't there and the subordinate project fails.

  2. no macro is created pointing to the installed pack in the host project so I still have to use an explicit (though relative) path.

Long run, I'd like to change the subordinate .proj file into an embedded target in the host project but with the way the nuget operates that's not happening.

I'll pull a fork and see what I can do to fix this myself.

Licensing is unclear

There is no licensing declared in the README.md file. On the distribution site (http://www.msbuildextensionpack.com/) the code is noted, vaguely, as being "open source". On the documentation site (http://www.msbuildextensionpack.com/help/4.0.12.0/index.html) an all-rights copyright is asserted, and in the source files (at least the ones that I've interacted with) there's a reference to the Microsoft Permissive License with all other rights reserved.

I can't find any current reference to the Microsoft Permissive License aside from an rtf download from the XBox site. However the license abbreviation (Ms-Pl) and actual content seem to be identical to the Microsoft Public License (https://msdn.microsoft.com/en-us/library/ff649456.aspx). The link in the source files to http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx now redirects to https://www.microsoft.com/resources/sharedsource/default.mspx which in turn redirects to https://www.microsoft.com/en-us/sharedsource/default.aspx which seems to be focused on the Shared Source initiative for partners to be granted access to the source code to things like the .Net Framework, not to "open source" efforts from within Microsoft.

All of this makes it extremely difficult for a developer to know what rights are granted for creating or distributing derivative works or using this work in commercial applications and whether attribution is required. For instance if I use an extension to an existing MSBuildExtension in a continuous integration implementation that generates a publicly available web site that I charge for access to do I need to note that in the site's 3rd party licenses list? I don't think so, nor do I think I need to pay a fee for such usage. But it's a little unclear.

Not to mention that, but even if I felt completely certain about my interpretation of the situation, I'm pretty sure that the cadre of lawyers looking out for my employers' or clients' best interests would be unwillling to accept my word for it.

Really not trying to be a pain in the neck here, but this does pose a real-world problem that I am unsure how to address.

Doxygen

Please add a task to generate documentation from a Doxyfile

Unable to build solution due to Enterprise requirements

I'm attempting to build the solution with an eye towards potentially contributing some additional tasks that I've had the need for, but I can't build the solution as configured due to a reliance on VS Enterprise-only features - specifically Microsoft.QualityTools.Testing.Fakes.

This is as much a comment as anything else - I'm aware I can just not build the FrameworkUnitTests project and go on with my life, which is what I did for my own purposes, but it's disappointing to have the desire and wherewithal to contribute but not to be able to engage fully due some libraries relied on by the project being unavailable. Feel free to close the ticket as "Won't Fix"; just wanted to voice my concerns.

MSBuild.ExtensionPack.VisualStudio.VB6 does not terminate correctly on windows server 2012 R2

Running a msbuild script from Teamcity with a Teamcity agent on Windows 2012 r2.
In the script I call <MSBuild.ExtensionPack.VisualStudio.VB6 TaskAction="Build" Projects="@(ProjectsToBuild)"/>
This will only build one project, but when it starts its seems to hang - VB6 is started as a process, but i dont know whats happening in the background. It does not terminate - so I have to stop the process manually.

Any idea how to get around this problem?

MSBuild script

<Target Name="Build Invoice VB6">
    <ItemGroup>
      <ProjectsToBuild1 Include="$(WorkDir)\VB6\Invoice\Invoice.vbp">
        <OutDir>$(InvoiceDir)</OutDir>
        <!-- Note the special use of ChgPropVBP metadata to change project properties at Build Time -->
        <ChgPropVBP>AutoIncrementVer=0;MajorVer=$(MajorVer);MinorVer=$(MinorVer);RevisionVer=$(Revision);</ChgPropVBP>
      </ProjectsToBuild>
    </ItemGroup>
    <!-- Build a collection of VB6 projects -->
    <MSBuild.ExtensionPack.VisualStudio.VB6 TaskAction="Build" Projects="@(ProjectsToBuild)"/>
  </Target>

Output in TC:

[22:18:04][Build All] CallTarget (51s)
[22:18:04][CallTarget] Build Invoice VB6 (51s)
[22:18:04][Build Invoice VB6] MSBuild.ExtensionPack.VisualStudio.VB6 (51s)
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] Building Projects Collection: 1 projects
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] START - Changing Properties VBP
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] AutoIncrementVer -> New value: 0
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] MajorVer -> New value: 3
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] MinorVer -> New value: 5
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] RevisionVer -> New value: 495
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] END - Changing Properties VBP
[22:18:04][MSBuild.ExtensionPack.VisualStudio.VB6] Running C:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.exe /MAKE /OUT "E:\TeamCity\buildAgent\work\cdf263a9d594f0b8\VB6\Invoice\Invoice.vbp.log" "E:\TeamCity\buildAgent\work\cdf263a9d594f0b8\VB6\Invoice\Invoice.vbp" /outdir "E:\TeamCity\buildAgent\work\cdf263a9d594f0b8\Builds\Jobmatch\Invoice\"

Install - Newbee

Hi All,

Can someone please help me.

Im wanting to develop code on a product called SenseNet and this is a prerequisite, However I cant see how to install or what to do with it to get this product working.

Any ideas on how to get it installed?

ExtensionTasksPath is now hard coded and cannot be overriden

You are now assuming that all of the tasks will live in the tools/net40 folder in the packages folder. My application actually packages the files up for use in a deployment step later and that means I can't custom set up my files. Can you change it back so that you can override the variable ?

MSBuild.ExtensionPack.Security.Certificate SetUserRights TaskAction cannot find a certificate by the SubjectDName returned by Add TaskAction

I think the reason might lie in the following code

private static X509Certificate2 GetCertificateFromDistinguishedName(string distinguishedName, X509Store certificateStore)
{
   // Iterate through each certificate trying to find the first unexpired certificate
   return certificateStore
      .Certificates.Cast<X509Certificate2>()
      .FirstOrDefault(certificate => string.Compare(
         certificate.Subject,
         distinguishedName,
         StringComparison.CurrentCultureIgnoreCase) == 0);
}

that should rather compare distinguishedName parameter against certificate.SubjectName.Name instead of certificate.Subject. (At least for the sake of consistency with what Add and GetInfo TaskActions do.)

Evolution in IIS7 WebSite "AddApplication" for 4.0.9 version

Hello,

I made an evolution in IIS7 to enable SSL settings and authentification methods when we create an IIS application using MSBuild.ExtensionPack.Web.Iis7Website Target.

Do you want me to send your the C# with the evolution?

Best regards.
Thomas

Doesn't work with VS2017

Microsoft has changed path to MSBuild in VS2017.
So this version of Studio can't find installed version of MSBuild Extension Pack.
Manual copying of Extension Pack to VS2017 MSBuild folder helps, but it's not a good solution. Especially in enterprise environment.

Version format artificially constraining - e.g. SemVer support

The AssemblyInfo.cs class uses the Version class to parse provided version strings. That severely limits valid inputs, and stops it being compatible with SemVer.

Version class ctor being used forces you to use a 4 component version string for BOTH the AssemblyVersion AND AssemblyFileVersion when in fact neither require this limitation.

The AssemblyVersion should accept anything between 1 and 4 component version.
The AssemblyFileVersion is actually free text and you can put anything you want in there.

A way to disable this over specificity would be useful.

BizTalkSendHandler task cannot update the default send handler

To update a BizTalk artefact, my understanding is that TaskAction="Create" must be used, which deletes and recreates the specified artefact with the specified properties. This doesn't work if:

  • The artefact is a default adapter handler
  • There are no other artefacts of the same type in the group to transfer the default to.

Doing this causes a mysterious error message (NullReferenceException: Object reference not set to an instance of an object) to be emitted to the console, and the deployment to be aborted.

I've inspected the code to identify what the problem is here and can PR when I have time. At a minimum, I think this condition should supply a sensible error message. I'm not sure this can be adequately resolved given the way BizTalk works i.e. default handlers cannot be deleted.

Error 2203 while installing

Trying to install MSBuild Extension Pack 4.0.10.0 on my Windows server 2012 machine and am getting error 2203 while installing.

I am using the x86 version.

Error - 'The "Msbuild.ExtensionPack.Xml.XmlFile" task could not be loaded from the assembly' while using MSbuild.ExtensionPack (version 3.5.15.0) in Share Point 2010 environment.

I had mentioned my issue as in below link also
https://msbuildextensionpack.codeplex.com/discussions/546757

MSBuild.ExtensionPack.Xml.XmlFile command gives an error like below.
Target: Simple Test
The "MSBuild.ExtensionPack.Xml.XmlFile" task could not be loaded from the assembly \ExtensionPack\4.0\Msbuild.ExtensionPack.dll. Could not load file or assembly 'file:///C:\ExtensionPack\4.0\MSBuild.ExtensionPack.dll' or one of its dependencies.
The system cannot find the file specified. Confirm that the declaration is correct, and that the assembly and all its dependencies are available.
MSBUILD : error MSB4017: The build was aborted because of an unexpected logger failure.

As i need this command with .net 3.5, so i had installed MSBuild ExtensionPack 3.5.15.0 in my SharePoint 2010 machine. However this commands works fine with MSbuild ExtensionPack 4.0.9.0 in SharePoint 2013 machine at where i had .net framework 4.0.

But my goal is to run this command in .net framework 3.5. Could you please suggest ?

CommandLine exception

Exec has no issues but when i switch to CommandLine i get

"C:\eXpandFrameWork\eXpand\Xpand.build" (nuget target) (1) ->
(NuGetPackage target) ->
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: The "MSBuild.Ext
ensionPack.Framework.CommandLine" task failed unexpectedly.\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: System.ComponentMo
del.Win32Exception (0x80004005): The system cannot find the file specified\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at System.Diagn
ostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at System.Diagn
ostics.Process.Start()\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at System.Diagn
ostics.Process.Start(ProcessStartInfo startInfo)\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at MSBuild.Exte
nsionPack.Framework.CommandLine.Execute() in C:\Projects\CodePlex\MSBuildExtens
ionPack\Solutions\Main\Framework\Framework\CommandLine.cs:line 292\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at Microsoft.Bu
ild.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execut
e()\r
C:\eXpandFrameWork\eXpand\Xpand.build(394,2): error MSB4018: at Microsoft.Bu
ild.BackEnd.TaskBuilder.d__20.MoveNext()

Enhancement for Shared Assembly Info file

Hi Mike,

Hope you're doing good.

Requirement: We need to update AssemblyInformationalVersion which we have placed in a SharedAssemblyInfo.cs file with other common attributes like company etc. The shared file then added to the projects as link in properties as sibling to AssemblyInfo.cs.

Issue faced: Whenever we tried to run task (MSBuild.ExtensionPack.Framework.AssemblyInfo) from MSBuild target file (shown below) we got an error that AssemblyVersion is not present. This issue was obvious as AssemblyVersion and AssemblyFileVersion attributes are present in AssemblyInfo.cs file only, which is associated per project. So, we did the following (but, even that didn't fulfilled our motive):

<ItemGroup>
      <AssemblyInfoFiles Include="$(MSBuildProjectDirectory)\Properties\*.cs" />
      <SharedAssemblyInfoFile Include="$(TF_BUILD_SOURCESDIRECTORY)\$(SharedAssemblyInfoPath)\SharedAssemblyInfo.cs"/>
    </ItemGroup>

<MSBuild.ExtensionPack.Framework.AssemblyInfo
       AssemblyInfoFiles="@(AssemblyInfoFiles)"
        AssemblyFileBuildNumber="$(SharedBuildVersionNumber)"
       AssemblyFileBuildNumberType="NoIncrement"
        AssemblyFileRevision="$(AssemblyFileRevisionNumber)"
       AssemblyFileRevisionType="NoIncrement"
      />

      <MSBuild.ExtensionPack.Framework.AssemblyInfo
      AssemblyInfoFiles="@(SharedAssemblyInfoFile)"
        UpdateAssemblyInformationalVersion="true"
       AssemblyInformationalVersion="$(SharedAssemblyInformationalVersionFinal)"
      />

Solution: To accomplish our goal we made few changes to the AssemblyInfo class' Execute method. We have attached the same in zip. In this we have added a flag which is being set when we have the SharedAssemblyInfo.cs file as input. In that case it updates AssemblyInformationalVersion only and skips other checks.

AssemblyInfo.zip

Question:

  • Is the change is safe to implement and is it appropriate?
  • Can we contribute this to your project after some clean up, if required?

Thanks

Parallel task doesn't support log paths with spaces

I am using the Parallel task and wanted to use the LogFilePath metadata value to change the log's output path. I noticed that if there are spaces in the path, it errors out. I checked the source code and line 275 in Parallel.cs is where the problem is. That guy needs to have quotations around the logging output path to prevent spaces from causing issues. For now, I'm using a path without any spaces, but I would like to have the full configuration name for my log output location (i.e. "(somepath)\Mixed Platforms\Release")

Thanks in advance!

Nunit3 OutputXMLFile path is escaped

The Nunit3 task uses an TaskItem for the OutputXMLFile property. TaskItem.ItemSpec returns an escaped string. Because of this, the NUNit3 task will break in case special characters are used in a pathname (e.g. in case the path is workspace@2\temp, this results in ``workspace%402\temp`)

Is there a reason why TaskItem is used for the properties containing paths instead of a standard string? If not I'll happily create a PR to fix this!

Svn Task caching user details

Hi All,

I have a small problem with the SVN task. When I try to call any of the actions with a username and password then Tortoise is caching the user details.
I tried to find the solution, but as I can see the extension should use the no-auth-cache, so this should not happen.
What am I doing wrong?

Thanks,
Peter

I am using TortoiseSVN 1.8.11

Task:

<UsingTask TaskName="MSBuild.ExtensionPack.Subversion.Svn" AssemblyFile="$(MSBuildProjectDirectory)\packages\MSBuild.Extension.Pack.1.6.0\tools\net40\MSBuild.ExtensionPack.dll " />
  <Target Name="SVNUpdate" AfterTargets="ExcludeFilesFromPackage">
    <MSBuild.ExtensionPack.Subversion.Svn TaskAction="Update" Items="$(SVNROOT)" UserName="BuildUser" UserPassword="SuperSafePassword:)"  />
   </Target>

Ionic.Zip.dll is missing in Binaries folder in Release 4.0.10.0 zip

Hi.

Thank you for MSBuild Extension Pack 4.0.10.0.

Ionic.Zip.dll v1.9.1.8 is missing in the Binaries folder in the 4.0.10.0 Release zip file.

As a result, I get the following MSBuild error:
error MSB4062: The "MSBuild.ExtensionPack.Framework.Guid" task could not be loaded from the assembly C:\Build\1\Third Party\MsBuild Extension Pack\4.0.10.0\Binaries\MSBuild.ExtensionPack.dll. Could not load file or assembly 'Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

It exists in the v3.5.14.0 zip file though.

Thank you.

VersionNumber target is only stamping one of the Assemblies

I am using the VersionNumber target to stamp my dlls. I have a solution with multiple projects. My issue is that only the web site dll is getting stamped.

I changed the ItemGroup specification of to:
.
It correctly finds all of the Assembly.cs files, but still only stamps the Web site dll.

I thought maybe the batching on the task might be the problem, but I made this change, and it didn't help.
<MSBuild.ExtensionPack.Framework.AssemblyInfo AssemblyInfoFiles="%(AssemblyInfoFiles.Identity).

Any help is appreciated.
Curt Zarger

Explicit Http Credentials for HttpWebRequest?

What do people think about adding parameters for explicit username and password?
I have a scenario (TeamCity) where I need to make a REST-ful POST request from the build, but the server only supports basic HTTP authentication, so I would need to provide a NetworkCredential with a specific user name and password.
I know having passwords in the build file would be considered less than ideal, but in my case TeamCity actually provides build properties for the server's credentials that I would use, so I wouldn't need to have a clear text password anyway in my case.

AssemblyInformationalVersion

I am trying to use the AssemblyInfoTask and I have noticed that the task works just fine for the AssemblyVersion and AssemblyFileVersion attribute but fails to update the AssemblyInfo.cs file when I attempt to execute the AssemblyInformationalVersion attribute.

The original AssemblyInformationalVersion attribute in the file always remains intact and is never updated.

MSBuild.ExtensionPack.VisualStudio.TfsSource does not work with TFS2015

I have in my code the usage of the TfsSource, and when the server was migrated to TFS2015 the code below started failing:
<MSBuild.ExtensionPack.VisualStudio.TfsSource TaskAction="Checkout" ItemPath="$(ProjectDir)myfile.wxs" Version="2013" WorkingDirectory="$(SolutionRoot)" />

Error message:
Error : Exit Code 100. Nothing Succeeded: Unable to determine the workspace. You may be able to correct this by running 'tf workspaces /collection:TeamProjectCollectionUrl'.

It failed for task-based builds and XAML based builds.

Path to targets file in code comment is incorrect

For instance the Framework\Signing.cs file has XML comments for the class that contains a code sample. In that sample the file MSBuild.ExtensionsPack.tasks is referred to, but in the NuGet package that file is called MSBuild.Extension.Pack.targets in folder [package-folder]\build\net40.

    /// <code lang="xml"><![CDATA[
    /// <Project ToolsVersion="4.0" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ///     <PropertyGroup>
    ///         <TPath>$(MSBuildProjectDirectory)\..\MSBuild.ExtensionPack.tasks</TPath>
    ///         <TPath Condition="Exists('$(MSBuildProjectDirectory)\..\..\Common\MSBuild.ExtensionPack.tasks')">$(MSBuildProjectDirectory)\..\..\Common\MSBuild.ExtensionPack.tasks</TPath>
    ///     </PropertyGroup>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.