我正在尝试使用Travis CI在AWS Elastic Beanstalk上构建和部署.NET Web API NancyFX。
根据AWS文档here,我需要使用以下参数运行msbuild:msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
。
我已经在本地计算机上完成了此任务,它可以正常工作并手动部署到EB,但是当我将其放入脚本部分下的.travis.yml
文件中时,我是从Travis那里得到的:>
错误MSB4057:项目中不存在目标“包”。
我的理解是Travis CI不使用msbuild,而是使用Mono xbuild,这显然与msbuild并不完全相同。我已经在xbuild之类的工具中搜索了/t:Package
,但还没有提出太多建议。我不确定是否必须手动将构建的软件包打包为Web部署的应用程序源包(aw eb显然需要这样做),或者是否有办法使/t:Package
参数起作用。
我尝试将nuget install MSBuild.Microsoft.VisualStudio.Web.targets -Version 14.0.0.3
添加到.travis.yml
的安装部分中,但这并不能解决问题。这是我的yml文件:
language: csharp
solution: testapp.sln
script:
- msbuild "testapp.sln" /t:Package /p:DeployIisAppPath="Default Web Site" /p:PackageLocation=.\testapp.zip /p:Configuration=Release
deploy:
skip_cleanup: true
provider: elasticbeanstalk
access_key_id: <omitted>
secret_access_key:
secure: <omitted>
region: "us-east-2"
app: "testapp"
env: "testapp-env-1"
bucket_name: "elasticbeanstalk-us-east-2-628753476924"
zip_file: ".\testapp.zip"
我敢肯定我不是唯一一个尝试使用Travis将.NET Web应用程序部署到AWS EB的人...我想,所以总有一个解决方案。谢谢。