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

时间:2011-03-22 18:56:01

标签: c# visual-studio-2010 msbuild

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

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 ==========

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

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

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

4 个答案:

答案 0 :(得分:13)

  • 在解决方案资源管理器中,右键单击解决方案
  • 然后转到Configuration Manager
  • 确保每次都要检查要构建的项目的构建列。

答案 1 :(得分:5)

尝试确保$(配置)和$(平台)都有默认值,方法是将这些行首先放在第一个PropertyGroup中......

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>

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

答案 2 :(得分:3)

我看到你修复了sln中的配置错误。 Resx问题与描述here相同。

答案 3 :(得分:0)

您可能想尝试编辑解决方案构建配置。

http://msdn.microsoft.com/en-us/library/kwybya3w.aspx

按照“选择和编辑解决方案构建配置”标题下的说明进行操作