2017-06-12 1 views
0

Je développe une extension Visual Studio. de l'extension associée VS modèle de projet comprend un appel à une tâche personnalisée dans la DLL de l'extension:Comment spécifier le chemin d'accès à une DLL d'extension VS à partir d'une balise MSBuild <UsingTask>

< UsingTask TaskName = "chemin vers MYDLL.DLL" "MyTask" AssemblyFile =/>

L'extension sera installé dans l'endroit habituel, grâce à l'utilisation de l'installateur VSIX.

Ma question est la suivante: Existe-t-il une bonne propriété ou macro MSBuild que je peux utiliser pour construire le chemin d'accès à la DLL de l'extension (par exemple, MyDLL.dll)? Je suis conscient de $ (DevEnvDir) et pourrait étendre ce chemin lors de l'utilisation du projet et de l'extension dans Visual Studio 2015 (append \ VendorName \ ProductName \ Version), mais cela ne semble pas fonctionner dans VS 2017, où le chemin d'accès ajouté utilise un nom brouillé qui ne peut pas être prédit à l'avance (ou peut-il?). Il y a aussi le problème que le projet/extension devrait fonctionner dans l'instance expérimentale VS, qui ne semble pas refléter $ (DevEnvDir).

Existe-t-il un bon moyen de faire cela avec les propriétés MSBuild, ou aurai-je besoin de regarder des alternatives comme les variables d'environnement ou le registre?

Répondre

1

Y at-il une bonne façon de le faire avec des propriétés MSBuild, ou ai-je besoin de chercher des alternatives comme des variables d'environnement ou le registre?

Vous pouvez utiliser des variables d'environnement ou le registre pour l'atteindre.

  1. variables d'environnement

vous pouvez utiliser des variables d'environnement comme celui-ci:

<UsingTask TaskName="MyTask" AssemblyFile="$(yourenvironmentvariablesname)MyDLL.dll" /> 

Pour plus d'informations, s'il vous plaît reportez-vous à:

https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-use-environment-variables-in-a-build

  1. Registre

Vous pouvez utiliser registre comme ceci:

<UsingTask TaskName="MyTask" AssemblyFile="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[email protected])MyDLL.dll" /> 

Remarque: s'il vous plaît changer de chemin Registre lié que vous le souhaitez.

https://blogs.msdn.microsoft.com/msbuild/2007/05/04/new-registry-syntax-in-msbuild-v3-5/