Los*_*NET 4 cruisecontrol.net ccnet-config msbuild-4.0
我创建了一个MSBuild项目,它只使用我们的解决方案文件作为参数执行msbuild任务.我已经定义了一个BeforeBuild目标,我在其中设置了一些属性,以及一个执行msbuild任务的Build目标.
我已经确认在命令行控制台中构建msbuild脚本时没有发生错误.但是,当我在CCNET项目的msbuild任务中使用它时,我不断收到以下错误:
C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9):错误:未为项目"MyProject.msbuild"设置OutputPath属性.请检查以确保您为此项目指定了Configuration和Platform的有效组合.Configuration ='Debug'Blatform ='AnyCPU'.您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认配置或平台.
我检查了构建日志,似乎在_CheckForInvalidConfigurationAndPlatform期间发生了错误.它甚至无法继续我的构建任务!由于该脚本仅用于在Debug/Release和AnyCPU下构建解决方案作为平台,因此我尝试将以下行添加到我的msbuild项目中:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>.\bin\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>.\bin\Release\</OutputPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我仍然可以在命令行中无错误地构建项目,但是CCNET返回了上面提到的相同错误.
我不明白为什么CCNET不断收到错误,我不知道还有什么可以尝试.
请帮忙.
Dav*_*ery 10
我发现我有类似的情况(但使用TeamCity作为我的CI环境).在我的特定情况下,该项目是一个命令行应用程序.要解决它,我不得不手动编辑我的项目文件.
找到这些行:
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
Run Code Online (Sandbox Code Playgroud)
将第二行更改为:
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
Run Code Online (Sandbox Code Playgroud)
在项目文件中找到其他特定于平台的行并进行更改.例:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
Run Code Online (Sandbox Code Playgroud)
变为:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Run Code Online (Sandbox Code Playgroud)
我怀疑我们的构建服务器是64位,而Studio中的控制台应用程序项目类型不会让你使项目适合AnyCPU平台......
完成这些更改后,TeamCity对我的构建脚本没有任何问题.
归档时间: |
|
查看次数: |
4878 次 |
最近记录: |