来自this帖子:
您参考nuget Jetbrains.Annotations,并且不要定义 JETBRAINS_ANNOTATIONS:此类注释仅对开发人员有用 使用源代码,它们不会在您的二进制文件中编译 (使用条件语句)并且它们在不可见时 引用你的DLL。你甚至可以添加developmentOnly =“true” 属性为packages.config中的Jetbrains.Annotations,默认情况下也是如此 它不会被视为依赖。
在我的cproj文件中,我有:
<Reference Include="JetBrains.Annotations, Version=10.2.1.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325, processorArchitecture=MSIL">
<HintPath>..\..\Build Files\packages\JetBrains.Annotations.10.2.1\lib\net\JetBrains.Annotations.dll</HintPath>
<Private>True</Private>
</Reference>
我可以完全摆脱这个引用并依赖packages.config条目:
<package id="JetBrains.Annotations" version="10.2.1" targetFramework="net45" developmentOnly="true" />
在packages.config和cproj文件中包含引用的目的是什么,假设cproj文件已经引用了packages.config?
答案 0 :(得分:1)
csproj文件中的引用用于指示.dll文件的提示路径。从Jetbrains.Annotations库调用类和属性时,需要指定路径。
package.config文件由NuGet基础架构管理。它用于跟踪和恢复已安装的软件包及其各自的版本。 有关packages.config的一些详细信息,请See here。
所以他们有不同的用法,你不能完全摆脱这个引用,只依赖于packages.config条目。