Je migre mes projets vers le nouveau format de visual studio 2017, qui fonctionne correctement pour toutes les bibliothèques standard. Je rencontre maintenant des problèmes avec les bibliothèques de l’interface utilisateur où j’utilise Wpf / Xaml.
Je n’arrive pas à comprendre comment faire cela pour mes contrôles utilisateur. Le vieil article ne semble plus être valide.
Tout le monde a une idée de comment faire cela ou si c’est même possible.
Il y a Sunburst.NET.Sdk.WPF qui permet de l’utiliser comme SDK .NET. Voici un exemple complet pour une application WPF où tous les fichiers .cs
et .xaml
seront automatiquement inclus:
WinExe net40
Lorsque vous construisez ce projet avec msbuild
(notamment, je n’ai pas eu de chance avec la dotnet build
), il télécharge automatiquement le SDK de NuGet et configure tout.
Vous pouvez utiliser le modèle ci-dessous pour remplacer l’ancien .csproj par. Cela résout quelques problèmes que d’autres modèles de personnes avaient.
*.g.cs
comme certains le suggèrent. Main not found
ne se produira. Unable to run your project. The "RunCommand" property is not defined.
Unable to run your project. The "RunCommand" property is not defined.
une erreur se produira. Modèle:
$(MSBuildExtensionsPath)\$(VisualStudioVersion)\Bin\Microsoft.CSharp.targets net47 WinExe full true Designer MSBuild:UpdateDesignTimeXaml Designer MSBuild:UpdateDesignTimeXaml
Après quelques recherches et essais et erreurs, je l’ai fait fonctionner!
Ceci est la version finale de wpf csproj:
$(MSBuildExtensionsPath)\$(VisualStudioVersion)\Bin\Microsoft.CSharp.targets net451 MyWpfLibrary MyWpfLibrary
La solution ci-dessus fonctionne pour les DLL Wpf, mais je l’ai inversée car Resharper et le concepteur Visual Studio n’étaient plus fonctionnels après cette modification. Principalement parce qu’ils ne pouvaient pas associer le xaml et le code-behind au moment de la conception. Mais le projet comstack et fonctionne.
Pour un exécutable wpf, vous devez procéder comme suit:
$(MSBuildExtensionsPath)\$(VisualStudioVersion)\Bin\Microsoft.CSharp.targets net451 WinExe MyNamespace MyExe MyExe.ico app.manifest MyNamespace.App