none
Compiler avec MsBuild sur ligne de commande RRS feed

  • Question

  • je ramasse l'erreur ci-dessous quand j'essaie de compiler avec MsBuild sur la ligne de commande.

    c:/Users/ .. /Microsoft.FSharp.targets(243,71): error MSB4057: La cible "GetReferenceAssemblyPaths" n'existe pas dans le projet.

    Voici ci-après un simple programme donné en exemple (F#, .Net 4.5 + .Net SDK 4.0):

    open System

    open System.Windows

    module Main =
        [<STAThread>]
        [<EntryPoint>]
        let Main args =
          try
               let qVar = "Hello Word !"
               ignore (MessageBox.Show (qVar))
               0
          with | ex -> ignore(MessageBox.Show(String.Format("Desole! {0}", ex.Message))); 1

    Enfin voici le projet:

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
      <AssemblyName>Essai</AssemblyName>
      </PropertyGroup>
      <ItemGroup>
        <Compile Include="Essai.fs" />
      </ItemGroup>
       <Import Project="Microsoft.FSharp.targets" /> 
    </Project>


    Moukonga

    lundi 22 décembre 2014 15:15

Réponses

  • Bonjour,

    Le plus simple à mon sens :

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    
      <Target Name="compile">
        <MSBuild Projects="ConsoleApplication1.fsproj"
                 BuildInParallel="true" 
    	     Properties="Configuration=Debug"/>
      </Target>
    </Project>
    

    Juste un petit probleme avec votre sample

    open System.Windows.Forms

    En espérant que cela vous aide.


    Warm Regards, Jonathan Muller -- GSX Monitor Project manager http://www.gsx.com Linkedin C++ Community Group Founder : http://www.linkedin.com/groups?gid=133720

    • Marqué comme réponse Moukonga vendredi 2 janvier 2015 20:10
    mercredi 31 décembre 2014 14:11

Toutes les réponses

  • Bonjour,

    Le plus simple à mon sens :

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    
      <Target Name="compile">
        <MSBuild Projects="ConsoleApplication1.fsproj"
                 BuildInParallel="true" 
    	     Properties="Configuration=Debug"/>
      </Target>
    </Project>
    

    Juste un petit probleme avec votre sample

    open System.Windows.Forms

    En espérant que cela vous aide.


    Warm Regards, Jonathan Muller -- GSX Monitor Project manager http://www.gsx.com Linkedin C++ Community Group Founder : http://www.linkedin.com/groups?gid=133720

    • Marqué comme réponse Moukonga vendredi 2 janvier 2015 20:10
    mercredi 31 décembre 2014 14:11
  • Merci pour la réponse!

    Elle marche bien.

    Toutefois, j'avais déjà levé l'erreur en introduisant dans mon projet .fsproj deux cibles nommées comme suit:

    <Target Name = "GetReferenceAssemblyPaths"/>
    <Target Name = "ResolveAssemblyReferences"/>

    Mais je ne suis pas encore au bout de mes peines car mon projet ne parvient pas à lier le fichier code behind (.fs) au fichier de balisage (.xaml). Au fait, Je ne trouve pas dans Mdsn une documentation indiquant la façon de le faire dans un projet .fsproj.

    Merci d'avance.

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
    <AssemblyName>MyAppli</AssemblyName>
    <OutputType>winexe</OutputType>
    <OutputPath>.</OutputPath>
    </PropertyGroup>
    <PropertyGroup>
    <FSharpTargetPath>c:\Program Files\Microsoft SDKs\F#\3.0\Framework\v4.0</FSharpTargetPath>
    </PropertyGroup>
    <ItemGroup>
    <Compile Include="MySource.fs"/>
    <Page Include = "MyWin.xaml"/>
    </ItemGroup>
    <ItemGroup>
    <Reference Include = "System"/>
    <Reference Include = "System.xaml"/>
    <Reference Include = "PresentationFramework"/>
    <Reference Include = "PresentationCore"/>
    <Reference Include = "WindowsBase"/>
    <Reference Include = "UIAutomationTypes"/>
    </ItemGroup>
    <Target Name = "GetReferenceAssemblyPaths"/>
    <Target Name = "ResolveAssemblyReferences"/>
    <Import Project="$(FSharpTargetPath)\Microsoft.FSharp.targets"/> 
    </Project>


    Moukonga

    vendredi 2 janvier 2015 20:42