2015-01-16 52 views
0

我正在構建一個web應用程序項目,並希望從桌面c#項目中引用幾個dll。這兩個項目都很大。如何在web應用程序中最好地共享c#dll?

這一切都是有機地發展起來的,所以到目前爲止我們所做的是在網絡應用程序解決方案中包含dll項目,這使得調試變得很容易。因此,目前我們所有的代碼(桌面應用程序和網絡應用程序)都位於一個大型的git倉庫中,我們構建web應用程序並通過Jenkins將代碼複製到Web服務器。

現在已經到了更好地管理代碼並將代碼分成兩部分的時候了。我遇到的問題是,我無法像通過Jenkins一樣構建代碼,因爲桌面應用程序代碼(和dll)將從Jenkins工作目錄中刪除(除非我創建了一個通用工作目錄)。

我只想得到一些想法如何最好地管理代碼: - 我如何在我的web應用程序解決方案中最好地包含桌面c#dll? - 如果我沒有在web應用程序中包含dll項目(調試web應用程序時),是否有任何方法仍然可以調試dll? - 如何讓Web應用程序解決方案中的dll保持最新(例如,如果我將它們放入bin文件夾中)? - 有沒有辦法在回購中不包含dll,但Jenkins重建並複製dll?

回答

1

您可以將共享的DLL以二進制格式存放在nuget軟件包中,並讓它通過桌面和Web應用程序引用。

我不知道詹金斯的一部分,但快速谷歌說,有一個支持nuget的。

Creating nuget packages是一個簡單直接的過程,在nuspec文件中添加一些關於nuget的元數據,並用一些參數調用nuget.exe爲您創建軟件包(nupkg),以便稍後可以在您的項目中引用。

Hosting nuget packages要稍後才能找到並使用,您需要創建一個Feed。它可以像將文件存儲在某個文件夾中一樣簡單,並將您的構建工具(Visual Studio,MSBUILD等)配置到哪裏查找nuget供稿。

引用nuget是在視覺工作室通過nuget package manager插件完成的。

+0

不是一個壞主意。 nuget包可以私人使用嗎? –

+0

是的,如果他們被託管在您的私人nuget飼料(它可以只是您的代碼庫或共享網絡路徑中的文件夾) – Bishoy

相關問題