我有一个具有以下结构的项目:
.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 ......
答案 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,您有两个文件:.deployment
和deploy.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项目的路径。
完成后,将.deploy
和deploy.cmd
添加到您的仓库的根目录(与.git
相同的级别)。当您推送到repo时,现在每个App Service将只构建您在每个自定义部署脚本中指定的csproj。
答案 1 :(得分:0)
如果您需要将它们保存在同一个仓库中,您可以使用分支,否则您可以使用2个回购。