msbuild在命令行上工作,但VS2010表示项目"未选中"

Rei*_*ien 5 c# msbuild visual-studio-2010

此问题的相关解决方案和项目文件位于:

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Library/BenfWaves.Library.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Tests/BenfWaves.Tests.csproj?r=26

我试图重构项目文件以消除冗余,并允许编译到.NET 3.5以及.NET 4.0.目前,VS2010 IDE可以在.NET 4.0上为任何CPU编译.如果我尝试任何CPU for .NET 3.5,它说:

错误1无法加载文件或程序集'System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.第123行,第5行.D:\ projects\BenfWaves\trunk\BenfWaves.Client\Properties\Resources.resx 123 5 BenfWaves.Client

我读到这可能是resgen.exe的问题,但更改该文件上的32位标志并没有改善任何情况.此外,IDE不相信项目具有除Any CPU以外的任何配置,这会产生以下问题:

------ Skipped Build: Project: BenfWaves.Library, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
------ Build started: Project: BenfWaves.Client, Configuration: Debug-4.0 x86 ------
           BenfWaves.Client -> D:\projects\BenfWaves\trunk\BenfWaves.Client\bin\x86\Debug-4.0\BenfWaves.Client.exe
------ Skipped Build: Project: BenfWaves.Tests, Configuration: Debug-4.0 Any CPU ------
           Project not selected to build for this solution configuration
========== Build: 1 succeeded or up-to-date, 0 failed, 2 skipped ==========
Run Code Online (Sandbox Code Playgroud)

它正在跳过不应该的东西.命令行中的msbuild适用于所有三个平台,不会跳过任何内容.

任何建议都会非常受欢迎.谢谢.

编辑:在第27版之后,至少"未选择"问题不再存在,因为我在项目中添加了虚拟配置行,以欺骗VS2010工作.但是,.NET 3.5下的资源编译问题仍然存在.

Sam*_*djo 13

  • 在解决方案Explorer中,右键单击Solution
  • 然后转到Configuration Manager
  • 确保每次都要检查要构建的项目的"构建"列.


Bri*_*ler 5

尝试通过将这些行首先放在第一个PropertyGroup中来确保$(Configuration)和$(Platform)都有默认值...

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
Run Code Online (Sandbox Code Playgroud)

这可能是相关的,因为IDE以特殊方式处理这些属性,如果在加载项目时它们没有值,则可能会混淆.


Ser*_*kov 3

我发现您已修复 sln 中的配置错误。Resx 问题与此处描述的相同。