2010-06-03 37 views
4

我已经制作了一个MSBuild项目,它只是以我们的解决方案文件作为参数执行msbuild任务。我已经定义了一个BeforeBuild目标,我设置了一些属性以及一个执行msbuild任务的Build目标。只有在调用CCNET中的MSBuild时才会出现“输出路径属性未设置”错误

我已确认在命令行控制台中构建msbuild脚本时没有发生错误。然而,当我在CCNET项目中使用它的MSBuild任务,我不断收到以下错误:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (483,9): error: The OutputPath property is not set for project 'MyProject.msbuild'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='AnyCPU'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.

我检查了构建日志,似乎_CheckForInvalidConfigurationAndPlatform过程中发生的错误。它甚至无法继续执行我的构建任务!由于脚本只建意在调试/发布和AnyCPU为平台的解决方案,我想下面的行添加到我的MSBuild项目:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <OutputPath>.\bin\Debug\</OutputPath> 
</PropertyGroup> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>.\bin\Release\</OutputPath> 
</PropertyGroup> 

我仍然可以生成项目没有错误的命令行,但CCNET正在返回上述相同的错误。

我不明白为什么CCNET不断收到错误,我不知道还有什么可以尝试的。

请帮忙。

+1

这是否对您有帮助? http://blogs.msdn.com/b/brandonwerner/archive/2010/03/14/the-nasty-visual-studio-platform-mcd-error-in-visual-studio-2010-rc.aspx – 2010-11-08 18:39:40

+0

你能发布在CC.NET中使用的msbuild任务? – alexandrul 2010-12-15 10:27:16

回答

10

我发现我有类似的情况(但使用TeamCity作为我的CI环境)。在我的特殊情况下,该项目是一个命令行应用程序。要解决它,我必须手动编辑我的项目文件。

查找这些行:

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

更改第二行:

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

的发现在项目文件中的其他特定于平台的线条和改变他们。例如:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 

变为:

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

我怀疑是我们构建服务器是64位,并在Studio的控制台应用程序项目类型不会让你做这个项目适合的AnyCPU平台..

这些更改之后,TeamCity对我的构建脚本没有任何问题。

+1

这正是我所需要的。没有这个答案,我非常怀疑我能否追查到这一点。 – 2012-05-23 19:28:04

+0

如果有其他人遇到这个问题,首行属于最初的Property Group,在我的情况下,平台行完全缺失。添加它解决了与TeamCity – yieldvs 2014-10-07 00:20:14

3

大卫的答案帮助了我。但后来我发现了我的电脑问题的实际来源。环境变量被添加到HP机器上,并且确实会影响Visual Studio的许多不同场景。

进入环境变量 - >系统变量并从列表中删除“PLATFORM”。

在此处查看更多详细信息:http://blogs.msdn.com/b/jnak/archive/2010/03/24/outputpath-property-is-not-set-for-project-error-when-building-a-windows-azure-cloud-service-in-vs-2010.aspx

+0

的问题感谢您的额外信息。这一定是一个真正的解决问题的人! – 2011-09-13 21:24:52

+0

在我的情况下,这实际上只是把更多的财产组织与平台,有时人们定制它(另一个名字像'MyAcceptance'),然后巡航控制引发这个错误。所以你必须把这个名字也添加到csproj的源代码中 – 2012-05-14 17:32:54

相关问题