2017-03-01 68 views

回答

0

答案是肯定的。您可以通過指定.sln文件爲WebSite項目創建構建定義。

enter image description here

+0

我曾嘗試創建一個使用TFS 2015年的網站,但它不工作構建定義。不工作意味着創建模板,即使構建成功排隊但0個文件被複制到服務器。因爲.csproj缺失......另一方面如果我選擇同樣的設置併爲具有.csproj和.sln的Web應用程序創建模板,那麼一切工作都正常 – Mahajan344

+0

您想要複製哪些文件?您可以添加複製文件任務來複制文件。 –

+0

我有.net網站,所以會有dll文件和aspx文件..就像你從本地發佈時一樣 – Mahajan344

1

正如@Cece說,答案是肯定的,你可以不用.csproj的服務器上運行的MSBuild。

我假設您的項目沒有在最終版本的.Net Framework上運行。你的情況我建議你做這個改變

https://stackoverflow.com/a/42493822/819153

那麼你應該將所有文件從PrecompiledWeb文件夾中複製,並且有你應該找到你的.sln 有時有動,我有/ CS項目看到他們沒有帶有項目文件,csproj或vbproject。他們使用.NET Framework 2.0運行。對於這些,您可以創建一個構建定義來編譯.sln,但是當您部署應用程序時,您需要將整個PrecompiledWeb文件夾複製到服務器上的IIS文件夾中。嘗試添加具有選項複製和發佈的任務,並將所有更改都放到服務器上。 檢查要放置文件的文件夾的權限,並確保在TFS上運行構建的代理程序可以訪問服務器文件夾的讀取/寫入權限。

對於你的情況,請檢查.sln文件,在它裏面你應該有一個TargetPath,默認情況下是PrecompiledWeb,但有時當你在tfs上運行msbuild時,你以一個錯誤提示說預編譯的Web可以' T爲您的解決方案的同一棵樹,你需要做的則是把你的解決方案文件夾中的含量最高

Debug.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\YourProject" 

然後在你的CopyTask您需要更改CopyRoot目錄,如果你之前所做的任何改造你的構建步驟到webconfig,這些轉換將反映在PrecomiledWeb \ YourProject上。該文件夾中的所有文件都應該部署到服務器文件夾路徑。 假設你在分支中有這樣的結構

Branch/MyProject,然後在TFS上編譯源代碼之後,預編譯的文件夾將存儲在代理文件夾的項目的同一級別上。請參閱下面的圖片以瞭解如何從PrecompiledWeb複製文件。

enter image description here

+0

我已經使用CopyFiles任務,這裏是屏幕截圖..但沒有任何文件被複制或構建.. http://pho.to/Ad5Uj ..我知道我缺少一些參數..但哪一個? – Mahajan344

+0

@ Mahajan344,請檢查複製文件任務的參數。併爲您的項目指定源文件夾,內容和目標文件夾:https://www.visualstudio.com/en-us/docs/build/steps/utility/copy-files –

相關問題