使用GIT

时间:2017-02-03 20:33:49

标签: git azure asp.net-core

我有一个具有以下结构的项目:

.git
docs
src
  proj.web
  proj.api
test
  proj.web.test
  proj.api.test

我正在使用以下内容将所有内容推送到Github:

git add -a
git commit . -m "Commit"  
git push -u origin master  

这有效,但我还需要使用git将各个项目推送到Azure。

但在这种情况下,我只需要将proj.web和proj.api推送到2个不同的git网址而不是一个网址。

我该怎么做?

更新

在Azure中配置持续部署后,我从Kudu获得了部署脚本,其中包含以下内容:

:: 1. Restore nuget packages
call :ExecuteCmd dotnet restore
IF !ERRORLEVEL! NEQ 0 goto error

:: 2. Build and publish
call :ExecuteCmd dotnet publish "src\proj.web\proj.web.csproj" --output "%DEPLOYMENT_TEMP%" --configuration Release

IF!ERRORLEVEL! NEQ 0转到错误

:: 3. KuduSync
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_TEMP%" -t     "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"

IF!ERRORLEVEL! NEQ 0转到错误

当我在Azure中同步时,我收到以下错误:

Most Recent Commit
GitHub
Failed
10:35 PM

错误:

命令:" D:\ home \ site \ deployments \ tools \ deploy.cmd" 处理ASP.NET核心Web应用程序部署。 MSBUILD:错误MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。 exitCode = 1失败,命令= dotnet restore 网站部署期间发生错误。 \ r \ nD:\ Program Files(x86)\ SiteExtensions \ Kudu \ 59.60125.2666 \ bin \ Scripts \ starter.cmd" D:\ home \ site \ deployments \ tools \ deploy.cmd"

我正在使用Visual Studio Code中的csproj文件处理ASP.NET Core 1.1。

我没有project.json ......

2 个答案:

答案 0 :(得分:2)

我可能在这里错了,但我猜你指的是Continuous Deployment to an Azure App Service

如果是这样,您所描述的问题基本上是您希望在同一个仓库中保留多个App Services?例如,同一应用程序的前端和后端部分。如果是这种情况,那么您可以在尝试部署时更改每个App Service的持续部署在repo中查找Web项目的方式。

转到App Service的Kudu界面。它可以在https://{your-website-name-goes-here}.scm.azurewebsites.net找到。在菜单中,您可以找到Tools > Download Deployment Script。打开zip,您有两个文件:.deploymentdeploy.cmd。打开deploy.cmd。找到如下所示的部分:

:: 2. Build to the temporary path
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
  call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Company.SolutionName\Company.Solution.ProjectName\Company.Solution.ProjectName.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\Company.SolutionName\\" %SCM_BUILD_ARGS%
) ELSE (
  call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\Company.SolutionName\Company.Solution.ProjectName\Company.Solution.ProjectName.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\Company.SolutionName\\" %SCM_BUILD_ARGS%
)

现在继续,每个App Service只需将Company.SolutionName\Company.Solution.ProjectName\Company.Solution.ProjectName.csproj更改为您要部署到该特定App Service的Web项目的路径。

完成后,将.deploydeploy.cmd添加到您的仓库的根目录(与.git相同的级别)。当您推送到repo时,现在每个App Service将只构建您在每个自定义部署脚本中指定的csproj。

答案 1 :(得分:0)

如果您需要将它们保存在同一个仓库中,您可以使用分支,否则您可以使用2个回购。