| 

.NET C# Java Javascript Exception

2
Hallo zusammen,

ich versuche gerade per MSBuild eine Cab Datei zu erstellen. Nachdem ich nun absolute Pfade nutze funktioniert es auch. Jedoch benötigt die Eigenschaft StripPrefixes den Pfad ohne Rootdirectory. Bei Items wie unten Files kann ich das per %(Files.Directory) bekommen. Das ist jedoch der gesamte Pfad zur Datei. Ich möchte meinen definierten Pfad $(SharedRepositoryFolderAbs)\Database\PriceLists\ jedoch ohne Root Directory bekommen. Oder um es evtl. zu vereinfachen einfach nur $(SharedRepositoryFolderAbs)
Wie bekomme ich das hin? Wenn ich mir %(SharedRepositoryFolderAbs.Directory) ausgeben lasse, dann steht dort nichts drin.

Besten Dank vorab.


<PropertyGroup>
<ReleaseFolder>..\..\Builds\DVD</ReleaseFolder>
<CabArcExePath>.\</CabArcExePath>
<SharedRepositoryFolder>..\..\development_Shared</SharedRepositoryFolder>
</PropertyGroup>

<Target Name ="PriceListsCab">
<ConvertToAbsolutePath Paths="$(SharedRepositoryFolder)">
<Output TaskParameter="AbsolutePaths" PropertyName="SharedRepositoryFolderAbs"/>
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(CabArcExePath)">
<Output TaskParameter="AbsolutePaths" PropertyName="CabArcExePathAbs"/>
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(ReleaseFolder)">
<Output TaskParameter="AbsolutePaths" PropertyName="ReleaseFolderAbs"/>
</ConvertToAbsolutePath>

<ItemGroup>
<Files Include="$(SharedRepositoryFolderAbs)\Database\PriceLists\*.csv"/>
<Files Include="$(SharedRepositoryFolderAbs)\Database\PriceLists\*.plm"/>
</ItemGroup>

<MSBuild.ExtensionPack.Compression.Cab TaskAction="Create"
FilesToCab="@(Files)"
CabExePath="$(CabArcExePathAbs)\CabArc.Exe"
CabFile="$(ReleaseFolderAbs)\PriceLists.cab"
PreservePaths="true"
StripPrefixes="$(SharedRepositoryFolderAbs)\Database\PriceLists\" />
</Target>
News:
22.02.2011
KCT 937 1 8
1 Antwort
0
Da ich nichts anderes gefunden habe ist meine Lösung zu diesem Problem ist ein neuer Custom Task Substring:

public class Substring : Task
{
public override bool Execute()
{
try
{
Result = Text.Substring(StartIndex);
}
catch (Exception e)
{
Log.LogErrorFromException(e);
return false;
}
return true;

}

[Required]
public string Text { get; set; }

[Required]
public int StartIndex
{
get;
set;
}

[Output]
public string Result
{
get;
set;
}
}



<Target Name="Debug">
<ConvertToAbsolutePath Paths="$(SharedRepositoryFolder)">
<Output TaskParameter="AbsolutePaths" PropertyName="SharedRepositoryFolderAbs"/>
</ConvertToAbsolutePath>
<Substring Text="$(SharedRepositoryFolderAbs)" StartIndex="3">
<Output TaskParameter="Result" PropertyName="SharedRepositoryFolderWithoutRoot" />
</Substring>
<Message Text="$(SharedRepositoryFolderWithoutRoot)"/>
</Target>
22.02.2011
KCT 937 1 8

Stelle deine Ordner-Frage jetzt!