2016-04-15 57 views
5

我想在nuget包中迭代而不必將包推到nuget提要。用本地項目引用覆蓋nuget包引用

我想知道是否可以通過csproj文件中的目標或道具文件有條件地添加項目引用而不是nuget包引用,這將允許我在本地調試我的nuget包。

在我的csproj我會:

<Reference Include="A"> 
    if(Exists(localOverrides.props) { 
     <HintPath>localOverrides.A.HintPath</HintPath> 
    } else { 
     <HintPath>..\packages\A.dll</HintPath> 
    } 
</Reference> 

和localOverrides.props會在我的.gitignore是文件中列出的開發人員可以添加命令行來,如:

A -> C:\Repos\A\bin\A.dll 

我是上錯誤的路徑?當然,必須有一個更可持續的方式來快速迭代和調試NuGet包,然後對每一個變化

回答

2

我一直調試NuGet包的方式創建發佈預包裝產品是,一旦你有一個包通過的NuGet添加到您的解決方案,然後對Nuget DLL進行更改,並將其複製到使用Nuget包的項目的packages文件夾中的正確文件夾中。

您所要做的就是編譯解決方案,在調試模式下將Nuget項目解決方案複製/粘貼到消費項目的包文件夾中。通過編寫批處理腳本並將其作爲後構建事件添加到只需將DLL複製到正確文件夾中的Nuget項目中,就可以使其更簡單。

0

聽起來像你想要一個測試項目(單位或集成)在與NuGet打包的組裝項目相同的解決方案。然後,您可以獨立於NuGet包的任何消費者證明其正確性。良好的測試也有助於確保您在將來更新軟件包時不會無意中破壞任何東西。

相關問題