2010-09-09 78 views
0

我有一個圖書館,這意味着許多網站使用。我現在在做的方式是在庫的屬性中,我將「生成後事件命令行」設置爲:複製「$(TargetPath)」「$(SolutionDir)\ MyWebsite \ bin \ $(TargetFileName)」如何在不使用GAC的情況下共享庫?

每次我想要一個新的網站使用共享庫,我添加了一個新的生產線是這樣的:複製 「$(TARGETPATH)」 「$(SolutionDir)\ MyWebsite2 \ BIN \ $(TargetFileName)」

是除了使用GAC之外,還有一個簡單或更好的方法可以做到這一點嗎?

回答

2

在我看來,你的問題是缺乏對這個圖書館如何被其他項目生產和使用的控制。如果我是你(我不是),我會着手通過單元測試聯合項目來開發這個庫,在這個項目中可以獨立開發和測試新功能。一旦該功能已經實現並經過測試,可以在您的單元測試參數中手動工作將程序集複製到Web項目的「庫」文件夾中,該項目首先需要擴展庫(此文件夾包含所有該項目使用的編譯程序集)。

更好的做法是維護一個版本系統,在該版本系統中標記庫的新版本,以便跟蹤其使用的確切源版本。

我建議什麼看起來像一個繁瑣的工作方法的原因是,你目前的做法使你現有的網站相當脆弱,因爲一個網站的圖書館所做的更改實際上可能會破壞其他網站之一...隨着網站數量的增加,您無法永遠對現有網站進行新版共享庫的復古測試。

這也是因爲這些原因,我不要推薦使用GAC。

+0

如果他每次爲其構建新版本時都會對其程序集進行版本化,只要他的安裝程序在GAC中保持以前的版本不變,則將其放入GAC不應該成爲問題。 – VinayC 2010-09-09 05:16:48

+0

你是對的,我不應該在它們之間沒有測試框架的情況下自動複製程序集。感謝您的洞察! :) – TruMan1 2010-09-09 10:21:10

相關問題