【发布时间】:2010-11-13 13:38:25
【问题描述】:
我正在尝试设置一个 .csproj 文件以具有一个条件项组,它将删除
例如:
<ItemGroup>
<ProjectReference Include="..\..\..\..\Projects\Registrar\Ucsb.Sa.Registrar.Common\Ucsb.Sa.Registrar.Common\Ucsb.Sa.Registrar.Common.csproj">
<Project>{1EDDDE57-0181-41B4-B2AE-FB76450F85C8}</Project>
<Name>Ucsb.Sa.Registrar.Common</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup Condition="$(OnBuildServer) == 'true'">
<ProjectReference Remove="*" />
</ItemGroup>
<ItemGroup Condition="$(OnBuildServer) == 'true'">
<Reference Include="Ucsb.Sa.Registrar.Common">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(RegCommonDll)</HintPath>
</Reference>
</ItemGroup>
但是,当我将项目加载到 VS 2008 中时,我收到错误消息“元素
.csproj 文件似乎指向 .NET 3.5;但我无法验证是否正在使用该版本的 msbuild 来加载项目(有人知道该怎么做吗?)
.csproj 文件的第一行:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
附言。我想到了使用来自Build with msbuild and dynamically set project references的条件句
【问题讨论】:
-
我还尝试将注册表项更改为默认值 3.5。这些键不配置 Visual Studio,而是在创建新项目时配置默认值(msdn.microsoft.com/en-us/library/bb397428.aspx、\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\、\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0) .当然,这并没有起到作用。我还检查了 PATH 环境变量,并将所有对 2.0 目录的引用替换为 3.5。同样,这并没有产生解决方案。
标签: .net visual-studio visual-studio-2008 msbuild