nuget安装软件包时更新CSproj参考路径

时间:2018-06-26 07:26:26

标签: visual-studio nuget csproj targets

有关问题的详细信息

我目前使用nuget打包我的内部依赖项。 (Nuget软件包存储在网络磁盘上。)

现在,我正在尝试通过以下方式改进此过程: -添加发布dll -添加调试DLL + PDB -添加来源 -添加目标文件

所以我在nuget包中创建了这种类型的结构

|   My.Package.9.9.9.9.nupkg
|
+---build
|   \---net461
|           My.Package.targets
|   \---net45
|   .
|   .
|   .
|
+---lib
|   \---net461
|       +---Debug
|       |       My.Package.dll
|       |       My.Package.pdb
|       |
|       \---Release
|               My.Package.dll
|   \---net45
|   .
|   .
|   .
+---src
    |   xxxx.cs
    |
    .
    .
    .

因此,现在当我在Visual Studio下的项目中添加此程序包时,我的targets文件似乎无法正常工作或未被使用。 (HintPath的发布模式和调试模式未设置为不同的值)。

我的CSproj就像在安装nuget软件包时一样

...
<ItemGroup>
    ...
    <Reference Include="UnifiedLogin, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
        <HintPath>packages\My.Package.9.9.9.9\lib\net461\Release\My.Package.dll</HintPath>
    </Reference>
</ItemGroup>
<Import Project="packages\My.Package.9.9.9.9\build\net461\My.Package.targets" Condition="Exists('packages\My.Package.9.9.9.9\build\net461\My.Package.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('packages\My.Package.9.9.9.9\build\net461\My.Package.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\My.Package.9.9.9.9\build\net461\My.Package.targets'))" />
</Target>
....

我的targets文件就像

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup Condition="'$(Configuration)' == 'Debug'">
        <Reference Include="UnifiedLogin">
            <HintPath>..\packages\My.Package\lib\Debug\My.Package.dll</HintPath>
            <Private>True</Private>
        </Reference>
    </ItemGroup>
    <ItemGroup Condition="'$(Configuration)' == 'Release'">
        <Reference Include="UnifiedLogin">
            <HintPath>..\packages\My.Package\lib\Release\My.Package.dll</HintPath>
            <Private>True</Private>
        </Reference>
    </ItemGroup>
</Project>

所以我的问题是,如何在release中使用我的release文件夹,在debug中使用我的debug文件夹:D 我的目标文件不好? 我在哪里弄错了?

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

问题已解决,目标文件中缺少net461