3

我有一个带有后期构建步骤的 Visual Studio 2012 扩展项目,我想在其中将 .dll 和 .AddIn 文件复制到当前用户的 Visual Studio 2012 AddIns 文件夹。

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

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

$(VSAddInsFolder)

在我的后期构建步骤中?

或者,我怎样才能获得当前用户的 Document 文件夹(这样我就可以使用以下内容:

$(MyDocuments)\Visual Studio 2012\AddIns

在我的后期构建步骤中?

前者会更好,因为我认为 AddIns 文件夹的位置在所有操作系统上都不相同。

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

谢谢

4

1 回答 1

1

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

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

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

@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 文件夹使用相同的位置),那么我可以简单地调整批处理文件的相关部分......

于 2013-05-24T15:11:23.577 回答