此问题的相关解决方案和项目文件位于:
http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?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下的资源编译问题仍然存在。
答案 0 :(得分:13)
答案 1 :(得分:5)
尝试确保$(配置)和$(平台)都有默认值,方法是将这些行首先放在第一个PropertyGroup中......
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
这可能是相关的,因为IDE以特殊方式处理这些属性,如果在加载项目时它们没有值,则可能会混淆。
答案 2 :(得分:3)
我看到你修复了sln中的配置错误。 Resx问题与描述here相同。
答案 3 :(得分:0)