我有一個packages.config文件簽入源代碼管理。這指定了我想要的Nuget依賴關係的確切版本。我們有我們自己的NuGet存儲庫。我們正在自己創建這些NuGet包。如何在TeamCity中構建時從Nuget包中複製js文件?
<packages>
<package id="Dome" version="1.0.0.19" targetFramework="net45" />
<package id="Dome.Dojo" version="1.0.0.19" targetFramework="net45" />
</packages>
這些包有當您添加NuGet包這在Visual Studio中的引用複製到腳本項目文件夾一些JavaScript文件。
我不想檢查這些JS文件中的源代碼管理,我只想檢查packages.config文件。
當我的項目在Team City中生成時(或者在新建結賬後在Visual Studio中生成時),它不會從NuGet包複製JS文件。有解釋類似的問題在這裏一個問題:
NuGet package files not being copied to project content during build
但是,在這個問題的答案,我不工作的解決方案;該解決方案使用ReInstall,這是有問題的,因爲它可以自動升級packages.config文件中的版本(例如,如果將依賴項指定爲> =)。
這樣做的關鍵是我希望能夠從我的源代碼管理中檢出修訂版本,並根據正確的依賴關係構建該版本,並且我想使用NuGet的良好打包功能。所以,我不希望任何「在構建過程中自動更新到最新版本。」
對於NuGet(http://nuget.codeplex.com/workitem/2094)存在關於不恢復內容文件的NuGet文件的問題。它被標記爲按設計關閉。
考慮到這是多麼有效,但在我看來(但我不是100%肯定),對於程序集NuGet有不同的行爲 - 它不會將它們複製到項目中,而是引用它們來自包文件夾中的位置。這讓我覺得,NuGet包中的js文件應該是,參考文件類似於如何引用dll。
有沒有辦法構建一個NuGet包,以便它引用JS作爲項目中的鏈接(與VS如何將現有文件添加爲鏈接一樣)?這會解決我的問題嗎?
如果沒有,那麼我會採取由傑夫·漢德利給出的建議時,請關閉打勾的NuGet發行2094上面提到的:
你可以選擇是創建一個新的控制檯可執行 引用的NuGet。核心,你可以建立一個補充包 復原爲自己使用,複製包內容到 項目。
寫我自己的命令行工具來複制內容看起來好像我在這裏推水上山 - 我在做一些根本性錯誤?