我現在維護的一個asp.net站點(git做版本控製)
解決方案裏包含了數個項目
並且經常會有圖片等資源文件的改動
之前用vs發布站點 生成的部署文件夾 每個文件夾覆蓋到對應的項目目錄
這種做法需要發布多個項目(vs2010,沒有按解決方案發布的功能)
並且有的項目圖片多 傳輸到服務器端耗時長
後來自己按目錄整理當前版本需要部署的文件 然後覆蓋到服務器
但是整理文件的過程繁瑣
目前打算用如下方式部署
通過alias gitd='git --git-dir=.git-deploy --work-tree=.'
gitd init
創建一個叫 .git-deploy 的repo 與 .git作用於同一個目錄
將這個repo push後
在需要部署的服務器上pull
但是查了下文檔 似乎 .gitignore這個文件名是不可更改的
也就是說 同一個目錄下 沒法用2個gitignore分別維護不同的repo
當然可以通過添加文件前替換.gitignore的方法實現
不過我想知道 還有沒有其他什麼方法 可以簡單地實現同一個目錄 不同的.gitignore的效果
或者其他部署asp.net項目的方法
建議利用 git hooks實現自動化部署,在 git 伺服器中的 hooks 資料夾內。
post-receive
可以偵測到有心的 push。假如生產環境的分之名為 deploy,在 post-receive 內寫好腳本,判斷若 deploy 分之有 push 到伺服器,則執行一些列部署操作。
具體可以 Google 一下,github 上也有一些開源實作。
現階段微軟給的解決方案只有一個,Web Deploy,
http://www.iis.net/downloads/microsoft/web-deploy
比較MSI打包之類相對簡單,與VS和IIS Manager有集成,自由可自訂。但是學習成本有一些。
沒錯,你就用VS自帶的就行了,它是配置在.csproj檔裡面的,編譯一次就可以啦。
但是要啟動編譯.sln檔的msbuild參數。
你參考這篇文章:http://weblogs.asp.net/srkirkland/archive/2012/05/14/ci-deployments-to-iis-via-ms-web-deploy-2-0.aspx