Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用本地项目引用重写nuget包引用_C#_Msbuild_Nuget_Nuget Package - Fatal编程技术网

C# 用本地项目引用重写nuget包引用

C# 用本地项目引用重写nuget包引用,c#,msbuild,nuget,nuget-package,C#,Msbuild,Nuget,Nuget Package,我希望迭代一个nuget包,而不连续地将包推送到nuget提要 我想知道是否有可能通过csproj文件中的目标或props文件有条件地添加一个项目引用而不是nuget包引用,这将允许我在本地调试nuget包 在我的csproj中,我会: <Reference Include="A"> if(Exists(localOverrides.props) { <HintPath>localOverrides.A.HintPath</HintPath&

我希望迭代一个nuget包,而不连续地将包推送到nuget提要

我想知道是否有可能通过csproj文件中的目标或props文件有条件地添加一个项目引用而不是nuget包引用,这将允许我在本地调试nuget包

在我的csproj中,我会:

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

我走错路了吗?当然,必须有一种更可持续的方法来快速迭代和调试nuget包,然后在每次更改时创建预发布包

我一直调试nuget包的方法是,一旦通过nuget将该包添加到解决方案中,然后对Nuget DLL进行更改,并将其复制到使用Nuget软件包的项目的“软件包”文件夹中的正确文件夹中


您所要做的就是在调试模式下编译Nuget项目解决方案,然后将它们复制/粘贴到消费项目的packages文件夹中。您可以编写一个批处理脚本,并将其作为生成后事件添加到Nuget项目中,该项目刚刚将DLL复制到正确的文件夹中,从而使此过程更加简单

如果您只想调试NuGet包,我建议您使用“dotpeek调试服务器”选项。这样,您不需要对引用执行任何操作,只需调试包或任何您想要的东西。

听起来您希望在与NuGet打包组装项目相同的解决方案中有一个测试项目(单元或集成)。然后,您可以独立于NuGet包的任何消费者来证明它的正确性。良好的测试还有助于确保您在将来更新软件包时不会无意中破坏任何东西。

谢谢您的建议,不幸的是,这不允许我更改代码并再次运行它。
A -> C:\Repos\A\bin\A.dll