2017-06-12 29 views
0

我正在开发Visual Studio扩展。 VS项目模板关联的扩展名的包括扩展的DLL到自定义任务的调用:如何从MSBuild指定VS扩展DLL的路径<UsingTask>标记

< UsingTask TASKNAME =“MyTask” AssemblyFile =“路径MYDLL.DLL”/>

扩展将被安装在通常的地方,通过使用VSIX安装程序。

我的问题是:是否有一个很好的MSBuild属性或宏,我可以用它来构造扩展的DLL(即MyDLL.dll)的路径?我知道$(DevEnvDir),并且可以在Visual Studio 2015中使用项目和扩展(附加\ VendorName \ ProductName \ Version)时扩展该路径,但在VS 2017中似乎不起作用,其中附加路径使用了一个无法预知的错误名称(或可以吗?)。还有一个问题是项目/扩展应该在VS实验实例中工作,该实例似乎并不反映$(DevEnvDir)。

有没有什么好的方法来做到这一点与MSBuild属性,或者我需要看看像环境变量或注册表的替代品?

回答

1

是否有任何好的方法来做到这一点与MSBuild属性,或者我需要看看像环境变量或注册表的替代品?

您可以使用环境变量或注册表来实现它。

  1. 环境变量

,你可以使用环境变量是这样的:

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

欲了解更多信息,请参见:

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

  • 注册表
  • 您可以使用注册表这样的:

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

    注:只要你想请更改相关的注册表路径。

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

    相关问题