"没有为此项目设置outputpath属性"错误

lac*_*dev 89 msbuild visual-studio-2008 buildconfiguration

我在Visual Studio 2008中有一个多项目解决方案.我刚刚在解决方案中添加了一个名为Release-VersionIncrement的新配置,指定"use release"配置作为基线.所有项目文件都使用该配置进行了更新.但是,当我尝试使用此配置编译特定项目时,我收到以下错误:

错误5未为此项目设置OutputPath属性.请检查以确保您已指定有效的配置/平台组合.Configuration ='Release-VersionIncrement'Platform ='AnyCPU'C:\ WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets 539 9 DataConversion

这里发生了什么事?该项目在Release或Debug配置中编译良好.

Say*_*imi 93

通常,当项目文件的OutputPath属性为空时,会发生这种情况.项目文件只是MSBuild文件.要在Visual Studio中编辑:右键单击项目,选择"卸载项目",然后右键单击卸载的项目并选择"编辑...".

查找Release-Versionincrement属性组.它应该看起来像

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
  <OutputPath>bin\Release-VersionIncrement\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <Optimize>true</Optimize>
  <DebugType>pdbonly</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

OutputPath的重要之处在于它是否存在于您的项目文件中?如果没有添加,请重试.

  • 如果输出路径正确并且您仍然收到此错误,则可能引用了不再存在的程序集或其他项目.清理旧的参考文献.那是我的经历. (33认同)
  • Deffo尝试使用\ p:Platform ="AnyCPU"而不是\ p:Platform ="Any CPU".那形成了我的作品!好久不停地看着这个! (7认同)
  • 我只是偶然发现了这个错误,不得不直接修改项目文件.即使项目属性页面说"任何CPU",该属性最初设置为空白,我从环境变量中选择了Platform = BPC设置.在我修复了它并将属性页面从任何CPU设置/重置到x86并返回后,它仍然无法构建,声称该平台现在是'x86'(?!?).果然,我按照这里的步骤发现它现在设置为x86,所以我手动编辑它,现在每个人都很高兴.多谢你们! (3认同)
  • 我的项目文件有预期的PropertyGroup,带有非空的OutputPath,我收到了这个错误.我唯一注意到的是,此特定配置的PropertyGroup是文件中根节点下的第一个元素,而Condition属性没有前导和尾随空格,与所有其他配置条件不同.在这一点上,我将这个元素移动到其他一些配置下面(不确定为什么它会重要,只是尝试一些东西),并在条件中添加了空格.在此之后它起作用了.不确定哪个有所不同. (2认同)
  • 我有另一个问题.我使用SlowCheetah为我的Windows项目创建配置转换.配置没有@sethflowers建议的空白.我添加了那些,但没有帮助.我看到配置之间有另一个属性组.因此将其排序(只是将属性组放在项目配置属性组下面)然后问题就消失了.感谢这里的所有建议.它节省了我的时间! (2认同)

Ric*_*all 77

当我们的构建代理程序配置为运行平台" 任何CPU "(在Visual Studio中显示空格)而不是" AnyCPU "(项目文件中指定的一个单词)时,我也看到了此错误.

  • 我遇到了同样的问题,似乎在解决方案级别,"任何CPU"都有效,但在项目级别,它是"AnyCPU".换句话说,`msbuild myproj.sln/p:Configuration = Debug/p:Platform ="Any CPU"`很好,但是在构建项目时,我不得不省略任何CPU中的空间:`msbuild myproj.proj1. csproj/p:Configuration = Debug/p:Platform = AnyCPU`以抑制Outputpath属性错误. (5认同)
  • 令人难以置信,以及什么是PITA for CI配置.几天来我一直在努力奋斗. (2认同)

小智 36

我第一次使用MSBuild时遇到了同样的问题.我的解决方案是:明确使用OutputPath属性.像这样:

msbuild XXX.csproj /p:OutputPath=bin\Debug.
Run Code Online (Sandbox Code Playgroud)


Bog*_*gin 9

在我们的例子中,我们在HP开发人员框上运行了构建脚本.惠普有一些他们为自己设置的环境变量,其中一个是PLATFORM(显然是用于"HP Easy Setup").

删除PLATFORM环境变量有效.

您还可以通过指定平台来证明您的构建脚本,即
msbuild /p:Platform=AnyCPU.


Sco*_*t S 8

如果Visual Studio专门抱怨"Platform ='BPC'",那么您可以通过删除"Platform"环境变量轻松解决此问题.

删除这个坏男孩.

现在重新启动Visual Studio,你很高兴.


Rob*_*ann 6

就像" Richard Dingwall "暗示的那样,问题与VS使用" Any CPU " 的显示版本而不是实际读取" AnyCPU " 的MSBuild版本有关.

进入构建/新构建定义或编辑构建定义 - >过程 - >配置构建,打开配置选择对话框并在" 平台 "中而不是选择" 任何CPU ",手动添加" AnyCPU "


Ole*_*Max 6

如前所述,必须设置OutputPath并且必须将其放在.wixproj文件之前 <Import Project="$(WixTargetsPath)" />