2017-02-24 104 views
1

我有一個非常簡單的場景。我有一個ASP.NET Core項目(.NET Framework),其中包含WebDeploy的PublishProfile。我也有.NET Core Class Library項目(.Net Framework),它引用了我的服務,這是我的測試項目。當我在TeamCity上構建此解決方案時,我有一個Visual Studio Build步驟,其中包含一些用於webdeploy的其他參數,其中包括/ p:DeployOnBuild = true。但問題是DeployOnBuild是一個全局設置,因此它將應用於所有「服務」項目。我不知道爲什麼,但我的測試項目被公佈爲可發佈的,所以它也會嘗試部署測試項目,並且最終會出現一個錯誤,即它無法在測試項目中找到發佈配置文件。如何在.sln或.xproj中告訴我這不是可發佈項目,我不希望它成爲發佈過程的一部分?我發現一些解決方案忽略服務項目,但這是一個非常簡單的情況,所以我認爲我不應該使用任何黑客來實現這一點。使用TeamCity部署ASP.NET Core項目並忽略測試 - WebDeploy

回答

1

我懷疑,當您在部署步驟中定位.sln時,您告訴他在.sln文件中部署任何可部署的projet。 您是否嘗試將目標文件轉換爲目標文件?

我沒有使用Visual Studio生成的一步,但它的MSBuild工作: see screenshot

+0

是的,我試了一下。這裏的問題是,我無法單獨構建這個項目,因爲這個項目中有一個後期構建步驟,它複製了一些文件,並且出現無法複製這些文件的錯誤,因爲無法找到路徑。當我單獨構建它時,它看起來像$(SolutionDir)沒有在此項目中正確設置。該後期構建活動是參考的nuget包之一。你碰巧知道「可部署」項目如何被識別? – MistyK

+0

我沒有自己嘗試過,但是如果你創建了一個構建配置'deployment',只需要構建webapp和任何需要的依賴項,除了你的測試工程,然後在TeamCity上使用開關'/ p:Configuration = deployment'? – dbraillon

+0

謝謝你。無論如何,這是我想避免的解決方法之一。我認爲應該有一個比這更簡單的方法。 – MistyK