3

哦,伟大的动力外壳之神,请向这个异教徒展示光明!

我的任务是创建一个 1 click publish-our-solution-to-the-cloud powershell 脚本。但是,我一生中从未使用过PS。因此,我一直在进行大量的谷歌搜索,并找到了很多信息,但是我想从哪里开始,我很难找到一些我可以理解的东西。

我一直在运行前/后构建脚本、VS 管理控制台、nuget 包管理或任何其他数量的看似无关的信息。这些不是我要找的。

要么在这里举例,要么链接到一个很好的教程让我开始。我的第一步是让 VS 打包发布的解决方案。通过 PS 执行以下操作。

为清楚起见,以防万一...

我认为这将是最容易找到的信息...我已经看到了一些关于 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
4

2 回答 2

4

您可以为此目的使用 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

请注意,&而不是.\this 告诉 powershell 执行变量(在本例中是 exe)。

此外,进一步解决您不知道该怎么做的问题。我使用一种称为 PSake 的构建语言,它是一种基于 PowerShell 的构建语言,可能对您有用。它非常有用:https ://github.com/psake/psake

希望这可以帮助。

于 2013-06-19T07:39:37.283 回答
1

对于 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" 
}
于 2014-12-08T22:00:14.063 回答