2

哦大功率的神靈,請展現這個異國光芒!從Powershell包裝一個Visual Studio項目

我的任務是創建一個單擊發布 - 我們的解決方案到雲端PowerShell腳本。然而,我從未在我的生活中使用PS。因此,我一直在做相當多的谷歌搜索,並找到了很多信息,但是我想在哪裏開始,我有點困難找到一些東西,可以將我的頭圍繞。

我一直運行前/後構建腳本,VS管理控制檯,nuget包管理或任何其他數量的看似無關的信息。這些不是我要找的。

通過示例在這裏或鏈接到一個很好的教程,讓我開始。我的第一步是讓VS打包發佈的解決方案。通過PS執行以下操作。

Image for clarity, just in case...

我認爲這將是最容易找到的......我看到的MSBuild的一些信息,我期待到現在,我希望能在這裏得到一個答案信息。

編輯:我的工作PS腳本

$msbuild = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe" # Reference to the MSBuild.exe for .NET 4.0 
$path = "C:\myProj\"         # Path to the project you want to publish to Azure 

# Clean the solution 
& $msbuild ($path + "Source\pathToYour\AzureMyProj.ccproj") /target:clean /p:Configuration=Release 

# Package the solution 
& $msbuild ($path + "Source\pathToYour\AzureMyProj.ccproj") /target:publish /p:Configuration=Release 

回答

3

可以使用的MSBuild用於此目的。這就是我要做的事爲我的項目:

所以從PowerShell中,你可以這樣調用它:

.\MSBuild MyProject.proj /target:package /p:Configuration=Release 

編輯25/06:就職於 - 詹姆斯/target:publish

注意:可能需要指定的MSBuild的位置作爲一個變量,這可以在C:\Windows\Microsoft.Net\Framework\VERSIONNUMBER\

發現在這種情況下,它會變成:

$msbuild = "C:\Windows\Microsoft.NET\Framework64\v2.0.50727\msbuild.exe" 
& $msbuild MyProject.proj /target:package /p:Configuration=Release 

通知的&代替.\這告訴的powershell來執行可變(在這種情況下是一個exe)。

此外,進一步到你不真正知道如何去做的問題。我使用一種名爲PSake的構建語言,這是一種基於PowerShell的構建語言,可能對您有用。這是非常有用的:https://github.com/psake/psake

希望這會有所幫助。

+0

謝謝,今天晚些時候我會試試這個,當我得到一個免費的分鐘。 –

+0

我收到一個錯誤: AzureWebOnly.ccproj:錯誤MSB4057:目標「包」在項目中不存在。 如果我使用/目標:構建它的構建,它看起來像我得到我的.cscfg和.csdef文件,所以希望這就夠了。 –

+0

啊,該死的。我主要處理SharePoint CI,因此包目標爲我們構建了一個可以部署的良好WSP。也許這個問題可以進一步幫助你? HTTP://計算器。com/questions/3097489/how-to-publish-web-with-msbuild –

0

For Web Deploy 3我有幾個問題正確分隔參數。從模板MVC4應用程序下面爲我工作。

$msbuild = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
$buildCommand = "& $msbuild MvcApplication.csproj '/target:package' /P:Configuration=Release" 

Write-Host 
Write-Host "[$scriptName] $buildCommand" 
Invoke-Expression $buildCommand 
$exitcode = $LASTEXITCODE 
if ($exitcode -gt 0) { 
    Write-Host 
    Write-Host "[$scriptName] Build using Web Deploy failed with exit code = $exitcode" -ForegroundColor Red 
    throw "Build using Web Deploy failed with exit code = $exitcode" 
} 
相關問題