3

現在のユーザーの Visual Studio 2012 AddIns フォルダーに .dll および .AddIn ファイルをコピーするビルド後のステップを含む Visual Studio 2012 Extension プロジェクトがあります。

Windows 8 を使用しているため、コピー先のフォルダーは "C:\Users\{Me}\Documents\Visual Studio 2012\AddIns" です。

VSアドインフォルダーをVSコマンドラインの「マクロ」として取得するにはどうすればよいですか(そのため、次のようなものを使用できます

$(VSAddInsFolder)

ビルド後のステップで?

または、現在のユーザーのドキュメントフォルダーを取得するにはどうすればよいですか (したがって、次の行に沿って何かを使用できます:

$(MyDocuments)\Visual Studio 2012\AddIns

ビルド後のステップで?

AddIns フォルダーの場所はすべてのオペレーティング システムで同じではないので、前者の方が望ましいでしょう。

これらはどちらも環境変数として利用できないようです (自分でフォルダーを環境変数として設定し、それを使用できることは知っていますが、可能であれば使用したくありません)。

ありがとう

4

1 に答える 1

1

これが私が自分の質問に答えるのに最も近いものです!

1) VS Add-insフォルダーは、OS によって異なる可能性があります。現時点では 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

これを別の OS で実行する必要がある場合 (そして、VS Addins フォルダーに同じ場所を使用していない場合)、バッチ ファイルの関連セクションを調整するだけで済みます...

于 2013-05-24T15:11:23.577 に答える