2016-04-15 59 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包的任何消费者证明其正确性。良好的测试也有助于确保您在将来更新软件包时不会无意中破坏任何东西。

相关问题