IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

[MSBuild] Project.EvaluatedProperties["OutputPath"] renvoi null


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut [MSBuild] Project.EvaluatedProperties["OutputPath"] renvoi null


    Je vien à vous car un problème m'est apparu, que je n'avais pas avant ...
    Dans un importateur de project Visual Studio 2005, je veux obtenir le dossier de sortie de ce même projet. Sur mon ancienne machine de developpement ( Visual Studio 2005 SP1 + Windows XP + .NET 2.0 ) ça marchait nikel mais là ( Visual Studio 2005 SP1 + Patchs Vista + Windows Vista + ... ) j'obtient nul, quelque soit le projet choisis. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Engine.GlobalEngine.BinPath = RuntimeEnvironment.GetRuntimeDirectory();
     
    Project vs_project = new Project();
     
    vs_project.Load(project_path);
     
    string out_dir = "";
    out_dir = vs_project.EvaluatedProperties["OutputPath"].FinalValue;
    Sur la dernière ligne, j'obtient un ArgumentNullException. Pourtant que je regarde le code source d'un des fichiers projets que j'utilise, je vois bien la propriété OutputPath définie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProductVersion>8.0.50727</ProductVersion>
        <SchemaVersion>2.0</SchemaVersion>
        <ProjectGuid>{18B58CA4-E470-4EB4-AC2B-52BECAFE0B53}</ProjectGuid>
        <OutputType>Library</OutputType>
        <AppDesignerFolder>Properties</AppDesignerFolder>
        <RootNamespace>InfoBox</RootNamespace>
        <AssemblyName>InfoBox</AssemblyName>
        <SignAssembly>false</SignAssembly>
        <AssemblyOriginatorKeyFile>
        </AssemblyOriginatorKeyFile>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
        <DocumentationFile>bin\InfoBox.XML</DocumentationFile>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\Release\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      ...
    </Project>
    Qu'ai-je mal fait ? y aurai-t-il quelque chose que j'ai oublié ?

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Etant donné que le répertoire change en fonction de la config (Debug, Release), est ce qu'il ne faut pas préciser quelle configuration est active ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ben j'ai essayé le code présent ici :
    http://blogs.msdn.com/msbuild/archiv...19/482740.aspx

    et boom, toujours la même erreur, NullReferenceException patatipatata

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Dans le projet j'ai la propriété "_InvalidConfigurationError" qui vaut "true", comment obtenir la raison de cet échec ?

  5. #5
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Problème résolu avec ce code que j'ai pris des heures à trouver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    string out_dir = "";
                try
                {
                    out_dir = vs_project.EvaluatedProperties["OutputPath"].FinalValue;
                }
                catch
                {
                    vs_project.GlobalProperties.SetProperty("Platform", "AnyCPU");
                    BuildPropertyGroup group = vs_project.EvaluatedProperties;
     
                    BuildProperty property = group["OutputPath"];
                    if (property == null)
                    {
                        vs_project.GlobalProperties.SetProperty("Configuration", "Debug");
     
                        BuildProperty property = group["OutputPath"];
                        if (property == null)
                        {
                            throw new ArgumentNullException("VSSolution.OutputPath");
                        }
                        else
                        {
                            out_dir = property.FinalValue;
                        }
                    }
                    else
                    {
                        out_dir = property.FinalValue;
                    }
     
                }
    Basiquement, j'avais mis "Any CPU" au lieu de "AnyCPU" ... j'ai honte

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double quote qui viennent de nulle part
    Par mioux dans le forum Coldfusion
    Réponses: 4
    Dernier message: 26/04/2007, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo