2009-11-19 6 views
2

J'ai un projet d'application web C# qui ne contient aucun ASP.Net ou C#. C'est juste une seule page html avec du Javascript, CSS, et quelques images. Je veux utiliser MSBuild pour déployer une version de cette application dans un dossier de sortie avec JS et CSS minifiés.Comment utiliser MSBuild sur un projet C# sans code compilable?

Avec le code suivant, j'obtiens une erreur "CSC: erreur fatale CS2008: Aucune entrée spécifiée." Je devine parce qu'il n'y a pas de code C# réel à compiler mais je ne suis pas sûr.

<?xml version="1.0" encoding="utf-8" ?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> 
    <PropertyGroup> 
     <CssTidy>..\build_tools\csstidy.exe</CssTidy> 
    </PropertyGroup> 

    <PropertyGroup> 
     <DeploymentFolder>Test\</DeploymentFolder> 
     <SourceProject>..\..\Test\Test.csproj</SourceProject> 
    </PropertyGroup> 

    <Import Project="Common.Web.targets" /> 

    <ItemGroup> 
     <CssFiles Include="..\..\Test\CSS\stylesheet.css" /> 
     <ScriptFiles Include="..\..\Test\JavaScript\javascript.js"/> 
    </ItemGroup> 

    <Target Name="compress_css"> 
     <Attrib Files="%(CssFiles.FullPath)" ReadOnly="false"/> 
     <Exec Command="$(CssTidy) %(CssFiles.FullPath) %(CssFiles.FullPath) --template=highest" /> 
    </Target> 

    <Target Name="compress_js"> 
     <Attrib Files="%(ScriptFiles.FullPath)" ReadOnly="false"/> 
     <JSCompress Files="%(ScriptFiles.FullPath)"></JSCompress> 
    </Target> 

    <Target Name="call_targets"> 
     <CallTarget Targets="compress_css"/> 
     <CallTarget Targets="compress_js"/> 
    </Target> 
</Project> 

Comment puis-je accomplir cela?

+0

Est-ce que cela aide? http://stackoverflow.com/questions/986221/tfs-build-server-csc-fatal-error-cs2008-no-inputs-specified – KMoraz

Répondre

0

Qu'est-ce qu'il y a dans "common.web.targets"? Je suppose que l'erreur est générée à partir d'une cible dans ce fichier (ou un autre qu'il importe).

4

Vous pouvez remplacer la cible CoreCompile et n'y rien faire: <Target name="CoreCompile" />. Cela va sauter ses activités et passer à autre chose. Vous devrez peut-être remplacer les cibles supplémentaires pour éviter les erreurs.

+0

C'était la clé pour moi-- J'ai été en mesure de corriger en ajoutant Merci – antlersoft

+1

Si cela vous a résolu, pourquoi n'avez-vous pas marqué cette réponse? –

+0

Après avoir ajouté à mon fichier .csproj, j'obtiens maintenant cette erreur: Impossible de copier le fichier "obj \ Release \ MyProject.dll" à ". \ MyProject.dll". Impossible de trouver le fichier 'obj \ Release \ MyProject.dll' Il semblerait que le projet tente toujours de copier l'assemblage dans le chemin de sortie dans les propriétés du projet. Quoi d'autre doit faire pour arrêter cela? – Laurence

1

Au sommet du fichier que vous avez les DefaultTargets = « Build »

Change « Build » à « call_targets » et vous devriez être bon d'aller.

0

Une solution rapide pour cela serait d'ajouter une page factice au projet. La construction fonctionnerait après cela.

Questions connexes