nuget安装包时更新CSproj引用路径
Update CSproj Reference path when nuget install package
问题详情
我目前使用 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>
所以我的问题是,如何在发布中使用我的发布文件夹并在调试中使用我的调试文件夹:D
我的目标文件不好?
我哪里做错了?
在此先感谢您的帮助
问题已解决,我的目标文件中缺少 net461
问题详情
我目前使用 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>
所以我的问题是,如何在发布中使用我的发布文件夹并在调试中使用我的调试文件夹:D 我的目标文件不好? 我哪里做错了?
在此先感谢您的帮助
问题已解决,我的目标文件中缺少 net461