我有一個Visual Studio Online構建定義,似乎是行爲不當,但我不確定是否只是錯誤地配置了某些東西。Visual Studio Online構建步驟忽略PackageLocation
存在被配置爲構建步驟如下:
類型: Visual Studio中構建
解決方案: ** \ mysolutionfile.sln
MSBuild的參數:/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
構建成功運行,構建日誌顯示
"C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe" "C:\a\1\s\Code\mysolutionfile.sln" /nologo /nr:false /dl:CentralLogger,(more removed for brevity) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="C:\a\1\a" /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="14.0" /p:_MSDeployUserAgent="VSTS_6efdabeb-1c75-43a7-96b2-f40e19a68a35_build_14_122"
正如你所看到的,包的位置設置正確:/p:PackageLocation="C:\a\1\a"
然而,在後來的生成日誌,封裝步驟可顯示此日誌條目S作爲如下執行的MSBuild命令:
2017-01-20T05:07:30.9771422Z Executing command ["C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:manifest='C:\Users\buildguest\AppData\Local\Temp\PublishTemp\obj\mysolution55\SourceManifest.xml' -dest:package='C:\a\1\s\Code\mysolutionfile\bin\Release\MSDeployPackage\mysolutionfile.zip' -verb:sync -replace:match='C:\\Users\\buildguest\\AppData\\Local\\Temp\\PublishTemp\\mysolutionfile55\\',replace='website\' -retryAttempts:20 -disablerule:BackupRule]
正如你所看到的,在這種情況下,包被髮送到-dest:package='C:\a\1\s\Code\mysolutionfile\bin\Release\MSDeployPackage\mysolutionfile.zip'
- 這確實是拉鍊連接在那裏樂結束了。
據我所知,這看起來不對。我想讓打包的應用程序二進制文件和文件最終進入暫存目錄,但msbuild正在將我重寫並放到源檢出文件夾中。
如果相關,解決方案包含兩個項目:一個針對完整.NET Framework的ASP.NET Core Web應用程序;和一個便攜式類庫。
我在構建配置中做錯了什麼?
感謝 - 解決方法的工作,但是這看起來像它是一個錯誤嗎?如果是這樣,我應該在哪裏報告嗎?我不知道如果問題是MSBuild或VSO正在運行構建的方式 – John
@John反饋鏈接是:https://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx。您可以在此處報告。 –
謝謝.MS Connect將我推送到另一個站點提交bug。如果有人對此有興趣,可以通過https://developercommunity.visualstudio.com/content/pr oblem/12933/visual-studio-online-build-step-packagelocation-be.html – John