J'ai implémenté un générateur de fichier unique basé sur le modèle [1] (qui compile dans une sortie VSIX installable, y compris l'enregistrement automatique des composants) et :Générateur de fichier unique ne fonctionne pas pour les projets .NET Standard dans Visual Studio 2017
- Il fonctionne pour les projets .NET classiques dans VS 2015 et VS2017;
- Cela fonctionne pour les projets .NET Core dans VS2017;
- Mais ne fonctionne pas pour les projets .NET Standard dans VS2017.
Tous les HasCustomTool.xml
fichiers ont la même configuration, tous ont l'attribut « Outil personnalisé » spécifié.
Lorsque je regarde les fichiers .csproj
, je peux voir qu'ils sont différents. Le contenu du fichier DotNetCore.csproj
est (travail):
<ItemGroup>
<Compile Update="HasCustomTool.cs">
<DependentUpon>HasCustomTool.xml</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="HasCustomTool.xml">
<LastGenOutput>HasCustomTool.cs</LastGenOutput>
<Generator>PtResxErrorTool</Generator>
</None>
</ItemGroup>
Alors que le fichier DotNetStandard.csproj
a:
<ItemGroup>
<None Update="HasCustomTool.xml">
<LastGenOutput>HasCustomTool.cs</LastGenOutput>
<Generator>PtResxErrorTool</Generator>
</None>
</ItemGroup>
Lorsque vous copiez sur le balisage de DotNetCore.csproj
à la DotNetStandard.csproj
(à la main), vous obtenez le structure souhaitée - mais le générateur n'est jamais activé.
Est-ce que quelqu'un a écrit avec succès un générateur de fichier unique VSIX pour les projets .NET Standard? Des pointeurs sur la façon de déboguer ce problème?
[1] https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator
J'ai eu un problème similaire mais pas identique exécutant des outils personnalisés - mon problème était d'installer VS2015 sur mon PC, qui avait auparavant seulement eu VS2017 installé. Les détails complets du problème se trouvent sur https://developercommunity.visualstudio.com/content/problem/72482/custom-tool-not-found.html?childToView=73591#comment-73591 –
Voir aussi la question similaire sur https://stackoverflow.com/questions/44616852/visual-studio-2017-wont-run-custom-tool-in-net-standard-library –
Comment êtes-vous arrivé à la première base de ce projet? Microsoft.VisualStudio.Shell.Interop est incompatible avec les versions .NET Standard. Au moins, c'est ce que le chargeur NuGet me dit. –