我有一个带有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文件夹的位置都不一样。
这些似乎都不适用于我作为环境变量(我知道我可以自己将文件夹设置为环境变量,然后使用它,但如果可能的话我宁愿不这样做。)
由于
答案 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文件夹的相同位置),那么我可以简单地调整批处理文件的相关部分。