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

时间:2009-07-08 20:00:18

标签: visual-studio-2008 msbuild buildconfiguration

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

  

错误5 OutputPath属性不是   为这个项目设置。请检查   确保你已经指定了一个   有效的配置/平台   组合。   配置=“发布 - VersionIncrement”   Platform ='AnyCPU'C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 DataConversion

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

27 个答案:

答案 0 :(得分: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>

OutputPath中的重要一个,是否存在项目文件?如果没有添加,请重试。

答案 1 :(得分:76)

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

答案 2 :(得分:35)

当我首先使用MSBuild时,我遇到了同样的问题。我的解决方案是:明确使用OutputPath属性。像这样:

msbuild XXX.csproj /p:OutputPath=bin\Debug.

答案 3 :(得分:9)

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

删除PLATFORM环境变量有效。

您还可以通过指定平台(即
)来为您的构建脚本提供面向未来的证明 msbuild /p:Platform=AnyCPU

答案 4 :(得分:7)

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

Delete this bad boy.

现在重新启动Visual Studio,你就可以了。

答案 5 :(得分:6)

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

答案 6 :(得分:6)

就像“ Richard Dingwall ”暗示的那样,问题与VS使用“任何CPU ”的显示版本而不是MSBuild有关实际上读取“ AnyCPU

的版本

进入构建/新构建定义或编辑构建定义 - &gt;过程 - &gt;要构建的配置,打开配置选择对话框并在“平台”而不是选择“任何CPU ”,手动添加“ AnyCPU

答案 7 :(得分:4)

我删除了Platform环境变量(就像那样是BNB或者smth)。问题消失了。

答案 8 :(得分:4)

今天,当我遇到这个问题时,我正在将x64平台添加到我的解决方案中。

在我的情况下,错误读取:

  

为默认目标构建$ / ProjectDirectory / ProjectName.csproj。    c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(484):未为项目ProjectName.csproj'设置OutputPath属性。请检查以确保您为此项目指定了Configuration和Platform的有效组合。 Configuration ='Debug'Blatform ='x64'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认配置或平台。

我知道OutputPath应该没问题,因为这是一个现有的,有效的VS解决方案。所以我转到下一个提示 - “配置和平台的有效组合”。

啊哈! Visual Studio正在尝试构建Configuration='Debug', Platform='x64'。看看我的项目文件,我意识到x64没有被列为可能的平台之一。换句话说,我有以下条目(缩短):

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

然后轻松修复:只需添加x64条目!

我复制/粘贴x86条目,并将其更改为使用x64。注意我还修改了路径,因此这些路径不会覆盖x86版本:

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

答案 9 :(得分:3)

作为Scott S,我必须删除“平台”环境变量

然后重启VS,没关系:没有更多错误消息......

答案 10 :(得分:3)

我用了一段时间,然后卸载,构建,然后重新加载解决方案中的违规项目,然后MSBuild正常运行。

答案 11 :(得分:2)

问题与我的项目配置有关。这是场景:

解决方案A参考:

  

项目X参考项目Y
  项目Y

解决方案B(我正在尝试构建的那个)引用:

  

项目X.   Z项目

我的解决方案是为解决方案A创建一个具有相同名称的配置,重建它,然后重建解决方案B.这解决了这个问题。

答案 12 :(得分:2)

在我的情况下(VS2010),我在“Build”选项卡上的“OutputPath”框中删除了字符串,并将其留空。然后我重建了解决方案。构建成功,VS已将当前目录“./”插入“OutputPath”。我用我的路径替换了当前目录“./”(“bin \ x64 \ Release \” - 足以说这是VS首先抱怨的确切文件夹路径)并且重建再次成功。

答案 13 :(得分:2)

我有同样的错误消息。这是因为引用了一个已卸载且链接器不需要的项目(否则它将在编译时失败)。删除有问题的引用解决了这个问题。

答案 14 :(得分:1)

当我在我的解决方案中添加新的解决方案配置时,出现错误,&#34;没有为项目X设置OutputPath属性。请检查以确保为此指定了有效的Configuration和Platform组合项目。配置=&#39; QA&#39;平台=&#39; AnyCPU&#39 ;. 如果某个其他项目尝试遵循项目到项目的对此项目的引用,此项目已被卸载或未包含在解决方案中,并且引用项目不使用相同的构建,则也可能出现此错误或等效的配置或平台。 ProjectY &#34 ;.

在我的案例中,问题是由于突出显示了错误描述的一部分。我的解决方案的项目X部分是对另一个解决方案(不同分支)的ProjectY的项目引用。

我通过修改项目X以在当前解决方案中使用ProjectY的项目引用来解决此问题。希望这有助于有类似问题的人。

答案 15 :(得分:1)

在我的例子中,OutputPath是项目文件中的set属性。 但卸载,重装和重建修复了它。

答案 16 :(得分:0)

VS2015 Professional刚有了这个功能:

  

未为项目'xxxxx.csproj'设置OutputPath属性。请   检查以确保您指定了有效的组合   此项目的配置和平台。

这也是调试/发行版和不同目标之间的多项目处理。我曾经在某种程度上摆弄过构建配置,并且我知道这可能会使VS混乱,因此我从回购中撤回了它们。还是不好。设置了OutputPath,不再有任何已知状态良好的差异,因此本地安装肯定存在问题。

打开VS2015安装程序,然后单击“修复”,瞧……恢复正常(至少到目前为止!)

答案 17 :(得分:0)

对我来说,它是NuGet软件包配置中的一行。摆脱项目文件中与之相关的所有程序包,然后重新体验一下(保存所做的编辑)。然后再逐步地逐步建立起来。我将其归为必须删除的这一行:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

在更新NuGet软件包(主要是FxCop分析工具)之后,我遇到了问题。

答案 18 :(得分:0)

在我的情况下,我尝试将包含我的自定义配置的属性组移动到标准配置之下。它为我解决了它。

答案 19 :(得分:0)

如果有人在他的NCrunch日志中得到这个,请检查PropertyGroup是否定义值'Debug'/'Release'和'AnyCPU'/'x86'位于之前属性组使用这些值。

<PropertyGroup>
    <!-- this one first -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <XXX>...</XXX>
  </PropertyGroup>

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

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

为我工作。

答案 20 :(得分:0)

I had the same problem, I fixed it by adding missing Configurations to the project that was failing.

BUILD -> Configuration Manager ->

Under Configuration Column Add

Note: This only happened to be because I have custom configuration and newly created projects didn't have the configuration.

答案 21 :(得分:0)

我遇到了同样的问题,唯一有帮助的解决方案是在每个NCrunch项目中手动设置构建配置。

打开NCrunch窗口,您可以在其中查看每个Build的状态以及可以看到构建失败的位置。右键单击无法构建的项目,然后在“构建设置”下单击“配置所选组件”,将属性“使用构建混淆”设置为例如“Debug”和属性“Use build platform”将其设置为例如“AnyCPU”。 (请注意,您设置的构建和配置设置必须存在于konfigration设置中)

对所有项目执行此操作,但不对您的测试项目执行此操作。在此之后,一切都适合我。

答案 22 :(得分:0)

我遇到了同样的问题。我通过清理修复了它并重建了项目。

答案 23 :(得分:0)

如果您决定将OutputPath设置为参数,并且您的路径类似于:orig.pat,请记得在最后添加ref.patpublic void onSensorChanged(SensorEvent event) { // alpha is calculated as t / (t + dT) // with t, the low-pass filter's time-constant // and dT, the event delivery rate final float alpha = 0.8; gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0]; gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1]; gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2]; linear_acceleration[0] = event.values[0] - gravity[0]; linear_acceleration[1] = event.values[1] - gravity[1]; linear_acceleration[2] = event.values[2] - gravity[2]; } 我花了一段时间才到意识到这是事实

答案 24 :(得分:0)

我遇到了同样的错误,所以我查看了项目设置,“Build”部分中有“Build output path”选项。价值是空的。所以我填写了“bin”值,错误消失了。它解决了我的问题。

答案 25 :(得分:0)

我在一个引用现有项目的新解决方案中创建了一个新项目。 当我添加现有项目(比如项目1)并尝试构建而不添加项目1引用的其他项目时,会发生此错误。

只需确保将所有相关项目添加到新解决方案中,错误就会消失。

答案 26 :(得分:0)

在我的例子中,新的“PropertyGroup”XML块是在文档的底部生成的。我刚刚在其他“PropertyGroup”标签之后更换了它,这解决了这个问题。