首页 文章

使用GIT推送项目的各个部分

提问于
浏览
1

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

.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 url而不是一个url .

我该怎么做?

Update

在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

如果!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"

如果!ERRORLEVEL! NEQ 0转到错误

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

Most Recent Commit
GitHub
Failed
10:35 PM

有错误:

命令:“D:\ home \ site \ deployments \ tools \ deploy.cmd”处理ASP.NET Core Web Application部署 . MSBUILD:错误MSB1003:指定项目或解决方案文件 . 当前工作目录不包含项目或解决方案文件 . exitCode = 1失败,command = 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 回答

  • 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,你有2个文件: .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 添加到repo的根目录(与 .git 相同的级别) . 现在,当您推送到repo时,每个App Service将只构建您在每个自定义部署脚本中指定的csproj .

  • 0

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

相关问题