3

ネイティブ dll ファイルを出力ディレクトリにコピーする NuGet パッケージ install.ps1 スクリプトを作成する必要がありますが、出力フォルダー パスを取得する方法が見つかりません。

解決策は、次のようなものを使用することだと思います。

$solutionDir = [System.IO.Path]::GetDirectoryName($dte.Solution.FullName) + "\"

PowerShell を使用して出力ディレクトリ パスを取得するにはどうすればよいですか?

4

2 に答える 2

3

「出力ディレクトリ」とは、プロジェクトの出力ディレクトリを意味しますか? その場合は、プロジェクトを反復処理してインデックスで 1 つを見つけ、そのようにプロジェクトのベース ディレクトリを取得できます (関心のあるプロジェクトがインデックス 3 にあると判断したと仮定すると:

 $project = $dte.Solution.Projects.Item(3)
 ($project.Properties | Where Name -match FullPath).Value

次に、ビルド パス (bin\debug または bin\release) を取得するには、次のようにします。

($project.ConfigurationManager.ActiveConfiguration.Properties | Where Name -match OutputPath).Value

次のように、ソリューション内のアクティブなプロジェクトにアクセスすることもできます。

 $project = $dte.ActiveSolutionProjects
于 2013-10-16T16:20:47.153 に答える
1

I started "walking up" until I found it:

param($installPath, $toolsPath, $package, $project)
if ($project -eq $null) {
$project = Get-Project
}


Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host "package:" "${package}"
<# Write-Host "project:" "${project}" #>
Write-Host " "

<# Recursively look for a .sln file starting with the installPath #>
$parentFolder = (get-item $installPath)
do {
        $parentFolderFullName = $parentFolder.FullName

        $latest = Get-ChildItem -Path $parentFolderFullName -File -Filter *.sln | Select-Object -First 1
        if ($latest -ne $null) {
            $latestName = $latest.name
            Write-Host "${latestName}"
        }

        if ($latest -eq $null) {
            $parentFolder = $parentFolder.parent    
        }
}
while ($parentFolder -ne $null -and $latest -eq $null)
<# End recursive search for .sln file #>


if ( $parentFolder -ne $null -and $latest -ne $null )
{
    <# Create a base directory to store Solution-Level items #>
    $myFolderFullName = $parentFolder.FullName
}
于 2013-10-16T15:42:49.117 に答える