J'ai essayé de mettre à jour la propriété ApplicationVersion dans mon fichier csproj. J'ai ajouté une cible qui exécute une tâche personnalisée pour extraire le AssemblyFileVersion de mon assemblyinfo.cs; cela fonctionne, il n'y a aucun doute à ce sujet. Mais quand je veux utiliser ma version ApplicationVersion mise à jour pour déterminer où placer mes nouveaux fichiers de construction, j'obtiens la valeur par défaut définie dans la propriété.MSBuild Mettre à jour la propriété dans csproj
<PropertyGroup>
...
<ApplicationVersion>1.0.0.0</ApplicationVersion>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\media-converter-BUILD\debug\$(ApplicationVersion)\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>..\media-converter-BUILD\debug\$(ApplicationVersion)\MediaConverter.XML</DocumentationFile>
</PropertyGroup>
Mes cibles
<UsingTask AssemblyFile="GetAssemblyFileVersion.dll" TaskName="GetAssemblyFileVersion.GetAssemblyFileVersion" />
<Target Name="MainAfterCompile">
<CallTarget Targets="AfterCompile" />
<CallTarget Targets="VerifyParam" />
</Target>
<Target Name="AfterCompile">
<GetAssemblyFileVersion strFilePathAssemblyInfo="Properties\AssemblyInfo.cs">
<Output TaskParameter="strAssemblyFileVersion" PropertyName="ApplicationVersionModded" />
</GetAssemblyFileVersion>
<PropertyGroup>
<ApplicationVersion>$(ApplicationVersionModded)</ApplicationVersion>
</PropertyGroup>
</Target>
<Target Name="VerifyParam">
<Message Text="New $(ApplicationVersionModded)" Importance="high"/>
<Message Text="Old Updated $(ApplicationVersion)" Importance="high"/>
</Target>
le GetAssemblyFileVersion.dll i plus ou moins volé de certains après je l'ai trouvé sur internet, juste ne le trouve pas encore, donc je peux » t ajouter un lien, désolé. Ma théorie sur la raison pour laquelle cela ne fonctionne pas est que les transformations et les paramètres dans PropertyGroups sont rendus avant que InitailTagets et DefaultTargets soient exécutés. Et là pour vous mon plan ne marchera jamais
mais si quelqu'un connaît un moyen de le faire fonctionner, je vous en sera reconnaissant ici il
Merci compagnon; Vous venez de me sauver d'utiliser 1 jour d'écriture d'un outil pour le faire pour moi. –