2017-06-12 30 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/

    相關問題