2009-05-21 15 views
15

Dodałem wstępną kompilację dla projektu kontroli sieci ASP.NET (kontrola serwera), który uruchamia jsmin.exe na zestawie plików JavaScript. Te pliki wyjściowe są częścią drzewa kontroli źródła i są osadzone w zespole.Sprawdzanie pliku (TFS) dla operacji pre-build

Problem polega na tym, że pre-build działa, jsmin nie może zapisać pliku tak, jak jest tylko do odczytu. Czy możliwe jest sprawdzenie pliku przed rozdaniem? Czy jestem zmuszony ustawić atrybuty pliku w linii poleceń?

Każde ulepszone rozwiązanie problemu jest mile widziane.

Aktualizacja Jeden mały problem z odpowiedzią Mehmet za -Nie trzeba poprzedzić katalogu VS:

"$(DevEnvDir)tf" checkout /lock:none "$(ProjectDir)myfile" 

Odpowiedz

10

Jeśli używasz Team Foundation Server, można użyć team foundation command line utility (tf.exe) do sprawdzenia plik (y) podczas wstępnej kompilacji, a następnie sprawdź je ponownie podczas kompilacji. Jeśli używasz czegoś innego do kontroli kodu źródłowego, możesz sprawdzić, czy ma narzędzie wiersza polecenia, takie jak tf.exe.

2

Jeśli nie chcesz sprawdzać plików jako części kompilacji (czego normalnie nie robiłbyś dla tego typu rzeczy), to po prostu ustawiłbym atrybuty plików .js przed uruchomieniem jsmin na nich. Najprostszym sposobem ustawienia plików do odczytu i zapisu jest użycie zadania Attrib dostarczonego przez MSBuild community extensions. Te same rozszerzenia społeczności udostępniają również zadanie JSCompress do łatwego wywoływania JSMin z MSBuild.

Dlatego trzeba było coś jak poniżej (nie sprawdzone)

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> 

<!-- rest of TFSBuild.proj file --> 

<Target Name="AfterGet">  
    <Message Text="Compressing Javascript files under &quot;$(SolutionRoot)&quot;." /> 
    <CreateItem Include="$(SolutionRoot)\**\*.js"> 
    <Output TaskParameter="Include" ItemName="JsFiles"/> 
    </CreateItem> 
    <Attrib Files="@(JsFiles)" ReadOnly="false"/> 
    <JSCompress Files="@(JsFiles)" /> 
</Target> 

Należy zauważyć, że poprzez modyfikację plików po uzyskaniu może je również powodować problemy, jeśli starali się przenieść do przyrostowego kompilacji.

+0

Czy wprowadzanie zmodyfikowanych plików, które nie są wyświetlane jako oczekujące zmiany, może być mylące? Można je pominąć podczas odprawy. –

Powiązane problemy