csproj文件中下面两个有什么区别?

时间:2015-11-13 10:52:28

标签: c# .net projects-and-solutions

 <ItemGroup>
    <ProjectReference Include="..\WindowsApplication2\WindowsApplication2.csproj">
      <Project>{7CE93073-D1E3-49B0-949E-89C73F3EC282}</Project>
      <Name>WindowsApplication2</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <Reference Include="WindowsApplication2, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <ExecutableExtension>.dll</ExecutableExtension>
      <HintPath>..\WindowsApplication2\bin\Release\WindowsApplication2.dll</HintPath>
    </Reference>   
 </ItemGroup>

1 个答案:

答案 0 :(得分:2)

不同之处在于,在一种情况下,您有项目参考。这意味着Visual Studio将其作为项目包含在内,作为代码。您可以在解决方案中使用它,您可以修改其代码。如果您更改WindowsApplication2,那么它将被重建并生成的DLL文件将被复制到所有相关项目&#39;解决方案中的输出文件夹。

在案例2中,您只需引用生成的DLL文件。它是一个生成的程序集,这意味着没有代码,没有编辑它的可能性,如果没有.pdb文件等,则无法调试它。这也意味着每次制作时都必须构建和更新DLL文件改变它。

我可能错了,但如果您在项目中同时拥有这两个引用,它就不会编译。