2009-09-08 6 views
0

J'intègre donc WPF dans une application Windows Forms que j'ai créée. L'un des gros obstacles que je rencontre est que lorsque le compilateur Markup génère les fichiers .g.cs en arrière-plan, la méthode InitializeComponent est générée de manière incorrecte.WPF XAML Markup Compiler génère une URL incorrecte dans InitializeComponent()

Voici ce qui est généré: System.Uri resourceLocater = new System.Uri ("/ MapWorksheet; V9.9..0; composant/contrôle/geoworksheetcon" + "trol.xaml", System.UriKind.Relative) ;

Ce qui est incorrect est la section version du descripteur d'URI. Cela fonctionnera en le supprimant ou en corrigeant la version (9.9.0.0 dans ce cas). J'ai essayé de changer un peu la version pour déboguer ceci (à 9.9.1.2), mais ceci n'a pas affecté la sortie de l'outil. J'ai d'abord supprimé le répertoire Obj, donc je sais que ce fichier a été créé récemment.

Je cherche un moyen de corriger cela, actuellement je dois éditer manuellement les fichiers .g.cs pour que cela fonctionne correctement.

Oh, et j'utilise aussi MSBuild et VS2008.

Merci à l'avance, Chris

Répondre

0

Celui-ci était un problème de configuration MSBuild.

J'ai travaillé avec celui-ci avec mon Build Engineer, il surchargeait la propriété AssemblyVersion dans MSBuild, ce qui a amené la tâche de compilation XAML à utiliser une mauvaise AssemblyVersion.

0

Pour ce faire automatiquement:

<Target Name="SetBuildNumber"> 
    <ReadLinesFromFile File="Properties\AssemblyInfo.cs"> 
     <Output TaskParameter="Lines" ItemName="ItemsFromFile" /> 
    </ReadLinesFromFile> 
    <PropertyGroup> 
     <Pattern>\[assembly: AssemblyVersion\(.(\d+)\.(\d+)\.(\d+).(\d+)</Pattern> 
     <In>@(ItemsFromFile)</In> 
     <Out>$([System.Text.RegularExpressions.Regex]::Match($(In), $(Pattern)))</Out> 
     <AssemblyVersion>$(Out.Remove(0, 28))</AssemblyVersion> 
    </PropertyGroup> 
    <Message Text="AssemblyVersion = $(AssemblyVersion)" Importance="high" /> 
</Target> 

<Target Name="BeforeBuild"> 
    <CallTarget Targets="SetBuildNumber" /> 
</Target> 
Questions connexes