【问题标题】:Why multiple references in same reference item in csproj file为什么 csproj 文件中的同一参考项中有多个参考
【发布时间】:2018-07-15 22:42:39
【问题描述】:

在我的工作中,我看到一个 .csproj 文件有一个参考项,如下所示:

<Reference>
 <Reference Include="AssemblyA, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" />
 <Reference Include="AssemblyB, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
   <HintPath>..\..\..\..\..\..\..\..\..\..\xxx\yyy\AssemblyB.dll</HintPath>
 </Reference>

这是什么意思?第一个程序集的 HintPath 没有列出,这是否意味着它应该是第二个程序集的同一个文件夹?但是为什么 .csproj 文件不将该语法用于其他引用呢?

而且我还注意到,对于某些引用,尽管 csproj 文件中的 &lt;Private&gt; 属性为 False,但 VS GUI 仍然显示 copy local = true。我没有看到该项目的 .USER 文件,那怎么会发生呢?谢谢!

【问题讨论】:

    标签: c# visual-studio


    【解决方案1】:

    这两个引用完全没有联系。第一个可能是从项目文件夹中引用的,所以:不需要提示路径,因为它会自动解析。它也可能在 GAC 中? B 显然来自磁盘上完全不相关的某个地方 - 因此需要提示路径。

    【讨论】:

    • 谢谢马克!但是为什么它们都在同一个 块下?这让他们看起来很相关......
    • @SimonWang 他们不是。再看看image you posted。上面的“块”是一个 end 元素。您在一分钟前将其错误地编辑为 start 元素。引用不是嵌套的。
    • 父标签包含所有引用,它不是“引用”而是ItemGroup,并且对AssemblyA的引用以该行结束,HintPath包含在AssemblyB的引用标签中,与AssemblyA的完全分开.
    • 哦,是的!我得到了它。它们是 2 个单独的“块”,我忽略了 AssemblyA 行末尾的“/”。对不起!谢谢你们!你知道为什么“private = false”但IDE仍然显示copy local = true吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2011-01-24
    • 1970-01-01
    • 2014-12-06
    • 2020-07-17
    相关资源
    最近更新 更多