MSBuild 15.0:警告MSB3245:无法重新解决此引用。期待一个文件,但得到了目录" \ bin"

时间:2017-10-29 16:31:44

标签: .net visual-studio msbuild visual-studio-2017

我尝试将Visual Studio 2015解决方案迁移到VS 2017(15.4.1)。虽然项目是在Visual Studio中编译的,但如果我尝试使用MSBuild v15从命令行构建单个项目,则对于引用解决方案中不同项目的任何项目,编译都会失败。

MSBuild输出以下警告,我认为这表明找不到引用的项目:

  

c:\ program files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets(1988,5):警告MSB3245:无法解析此引用。期望一个文件,但得到了目录" D:\ TestSolution \ ClassLibrary2 \ bin"。如果您的代码需要此引用,则可能会出现编译错误。 [d:\ TestSolution \ ClassLibrary2 \ ClassLibrary2.csproj]

我使用以下命令启动MSBuild:

"c:\program files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"
    "d:\TestSolution\ClassLibrary2\ClassLibrary2.csproj"

重现的步骤:

  1. 在Visual Studio 2017中,使用两个类库ClassLibrary1ClassLibrary2创建一个新解决方案。
  2. ClassLibrary2引用ClassLibrary1,并确保代码链接到Class1的{​​{1}}。通过右键单击' Dependencies'添加引用。解决方案资源管理器中项目的节点,然后选择"添加参考..."从上下文菜单中。
  3. 从Visual Studio编译项目以验证它是否从Visual Studio编译。
  4. 使用上一个命令从命令行启动MSBuild。建筑物因所述警告而失败。
  5. 除警告外,还有以下错误消息:

      

    Class1.cs(7,26):错误CS0246:类型或命名空间名称' ClassLibrary1'找不到(你错过了使用指令或汇编引用吗?)[d   :\ TestSolution \ ClassLibrary2 \ ClassLibrary2.csproj]

    ClassLibrary1的项目文件:

    ClassLibrary1

    ClassLibrary2的项目文件:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
      </PropertyGroup>
    </Project>
    

    ClassLibrary2中的Class1:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
      </PropertyGroup>
      <ItemGroup>
        <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" />
      </ItemGroup>
    </Project>
    

    我在这里做错了什么?

0 个答案:

没有答案