如何在VS2012构建后步骤中获取Visual Studio 2012 AddIns文件夹(或当前用户的“文档”文件夹)?

时间:2013-05-17 11:21:46

标签: visual-studio-2012

我有一个带有Post-build步骤的Visual Studio 2012 Extension项目,我想将.dll和.AddIn文件复制到当前用户的Visual Studio 2012 AddIns文件夹。

我正在使用Windows 8,因此我要复制的文件夹是: “C:\ Users \ {Me} \ Documents \ Visual Studio 2012 \ AddIns”

如何将VS AddIns文件夹作为VS命令行“宏”(因此我可以使用类似

的内容)
$(VSAddInsFolder)

在我的后期构建步骤中?

或者,如何获取当前用户的文档文件夹(因此我可以使用以下内容:

$(MyDocuments)\Visual Studio 2012\AddIns

在我的后期构建步骤中?

前者会更好,因为我想所有操作系统上AddIns文件夹的位置都不一样。

这些似乎都不适用于我作为环境变量(我知道我可以自己将文件夹设置为环境变量,然后使用它,但如果可能的话我宁愿不这样做。)

由于

1 个答案:

答案 0 :(得分:1)

这是我最接近回答问题的答案!

1) VS加载项文件夹可能会根据操作系统进行更改。 我现在只关心Windows 8,所以我可以使用%UserProfile%\Documents\Visual Studio 2012\AddIns作为加载项文件夹。

2)在构建后步骤中检测Windows版本,如下所示: (找到here

@echo off
ver | find "6.2" > nul
if %ERRORLEVEL% == 0 goto Win8

ver | find "6.1" > nul
if %ERRORLEVEL% == 0 goto Win7

ver | find "5.1" > nul
if %ERRORLEVEL% == 0 goto WinXP

:Win8
echo Running Windows 8
copy "$(TargetDir)$(TargetFileName)" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(TargetFileName)"
copy "$(ProjectDir)$(ProjectName).AddIn" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(ProjectName).AddIn"
goto  exit

:Win7
echo Running Windows 7 - I think this Addins path is correct 
copy "$(TargetDir)$(TargetFileName)" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(TargetFileName)"
copy "$(ProjectDir)$(ProjectName).AddIn" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(ProjectName).AddIn"
goto exit

:WinXP
echo Running Windows XP, so the Addins path might not be correct
copy "$(TargetDir)$(TargetFileName)" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(TargetFileName)"
copy "$(ProjectDir)$(ProjectName).AddIn" "$(USERPROFILE)\Documents\Visual Studio 2012\Addins\$(ProjectName).AddIn"
goto exit

:exit

如果我需要在不同的操作系统上运行它(并且他们使用VS Addins文件夹的相同位置),那么我可以简单地调整批处理文件的相关部分。