在解决方案之间共享项目时的 NuGet

rpf*_*pfc 3 .net c# visual-studio nuget

我有几个共享某些常见项目的解决方案,例如包含访问我的数据模型的所有必需内容的解决方案。

解决方案资源管理器情况

实际问题是,尝试在一个具有依赖项的项目中使用 NuGet 安装软件包(例如 Iesi.Collections),会在当前解决方案目录中而不是在项目目录中创建对 dll 的引用。然后,当我尝试转到另一个解决方案时,共享项目无法编译(因为缺少程序集)。

第一个路径参考 第二条路径参考

我已经四处寻找以独立的方式在解决方案之间的共享项目中使用 NuGet。

所以问题是...我如何才能在 NuGet 中的解决方案之间获得独立的行为和引用?

Dav*_*dra 5

解决此问题的另一种方法是修改.csproj文件中的包引用路径,例如使用$(SolutionDir)宏 - 这将在两个解决方案中将引用指向正确的目录:

<ItemGroup>
    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
        <HintPath>
            $(SolutionDir)packages\Newtonsoft.Json.10.0.3\lib\net40\Newtonsoft.Json.dll
        </HintPath>
    </Reference>
    ...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)