未为此项目设置OutputPath属性

Amz*_*ath 110 c# visual-studio

当我尝试在Visual Studio 2008中从x86调试模式编译我的项目时.我收到此错误.当我查看抱怨的项目的属性组时,我看到输出路径已设置.

这是.csproj文件的属性组部分

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\x86\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <BaseAddress>285212672</BaseAddress>
  <FileAlignment>4096</FileAlignment>
  <DebugType>full</DebugType>
  <PlatformTarget>x86</PlatformTarget>
 <ErrorReport>prompt</ErrorReport>
Run Code Online (Sandbox Code Playgroud)

任何人都可以阐明这一点吗?

注意:当我编译这个Debug和任何CPU时,它工作.

更新:错误1未为此项目设置OutputPath属性.请检查以确保您已指定有效的配置/平台组合.Configuration ='Debug'Blatter ='x86'

Rom*_*kov 176

在VisualStudio中通过ConfigurationManager添加新配置后出现完全相同的错误.

当为整个解决方案(和每个项目)添加"生产"配置时,原来没有将OutputPath元素添加到csproj文件中.

为了解决这个问题,我进入了项目属性的Build选项卡,将OutputPath更改\bin\Production\\bin\Production(已删除尾随\)并保存更改.这强制在csproj文件中创建OutputPath元素并成功构建项目.

对我来说听起来像个小故障.

  • 在我的情况下,构建一个proj文件,`any cpu`和`anycpu`之间的区别是问题,但你的帖子帮助我看到了. (8认同)
  • 很好地抓住这个多变的错误.永远不会猜到一个单一的斜线可以产生那么大的差别.有一个好答案徽章. (7认同)
  • 谢谢罗曼,你救了我的一天……如果我能对你的回答投赞成票 100 次就好了!:) (2认同)
  • 刚刚在VS 2017 v15.6.6遇到过这个,培根保存了,谢谢! (2认同)
  • @Joshua Drake,这是使用 VSTS 时的一个重要问题。在线 Visual Studio 使用“any cpu”,而本地 Visual Studio 使用“anycpy”。对于构建脚本很重要。 (2认同)

dbl*_*ood 26

如果解决方案中的项目引用了无法找到的程序集,则可以在VS 2008中看到此错误.如果程序集来自另一个不属于您的解决方案但应该属于您的解决方案的项目,则会发生这种情况 在这种情况下,只需将正确的项目添加到解决方案中即可解决问题.

检查解决方案中每个项目的"参考"部分.如果他们中的任何一个在它旁边有一个红色x的引用,那么你就找到了你的问题.解决方案无法找到该程序集引用.

错误信息有点令人困惑,但我已经多次看到过.

  • 就我而言,这是一个"黄色警告" (2认同)

小智 24

如果你正在使用WiX看看(有一个bug) http://www.cnblogs.com/xixifusigao/archive/2012/03/20/2407651.html

有时,新的构建配置会被添加到.wixproj文件中的文件中,也就是说,与其他不相关的XML元素的兄弟配置定义分开.

只需编辑.wixproj文件,以便<PropertyGroup>定义构建配置的所有部分彼此相邻.(要编辑.wixprojVS2013,在解决方案资源管理器中右键单击项目,卸载项目,再次右键单击 - >编辑YourProject.wixproj.编辑文件后重新加载.)

  • 谢谢,这为我解决了。添加到项目中的配置越多,我的行为就越奇怪。一旦我清理了项目文件,一切就正常了。(这个 bug 是在 2012 年首次报告的?太棒了......) (3认同)
  • 谢谢,这也为我解决了 (2认同)

Phi*_*Atz 11

这是我发生的,因为我将以下行移到了.csproj文件开头附近:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>
Run Code Online (Sandbox Code Playgroud)

它需要放置在定义Configuration | Platform的PropertyGroup之后。


Jen*_*sen 11

在设置为构建 .csproj 而不是构建管道中的 .sln 后,Azure DevOps 的输出出现了这个问题。

我的解决方案:编辑受影响项目的 .csproj,然后复制整个

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCpu' ">
Run Code Online (Sandbox Code Playgroud)

节点,粘贴它,然后将第一行更改如下:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|any cpu' ">
Run Code Online (Sandbox Code Playgroud)

原因是,在我的情况下,错误说

Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='release'  Platform='any cpu'.  
Run Code Online (Sandbox Code Playgroud)

为什么 Azure 想要使用“any cpu”而不是默认的“AnyCpu”对我来说是个谜,但这个 hack 有效。

  • 通过遵循您的想法,我发现在我的情况下,我不需要在项目中进行更改,而是在 DevOps 中的 Visual Studio 构建步骤中,我设置了 Configuration 字段以使用具有 AnyCpu 值的变量。 (3认同)

Amz*_*ath 10

视觉工作室中显示的项目错误(假设是A)没有问题.当我每个项目逐行查看构建的输出窗口时,我看到它抱怨另一个项目(B)在项目A中被称为程序集.项目B已添加到解决方案中.但它没有在项目A中作为项目参考而被称为来自不同位置的装配参考.该位置包含为Platform AnyCpu编译的程序集.然后我从项目A中删除了程序集引用,并添加了项目B作为参考.它开始编译.不确定此修复程序是如何工作的.

  • Deffo尝试使用\ p:Platform ="AnyCPU"而不是\ p:Platform ="Any CPU".那形成了我的作品!好久不停地看着这个! (14认同)
  • 就我而言,当从 TFS 启动构建时,“任何 cpu”是 BuildPlatform 的默认值。更改为“AnyCPU”解决了问题。 (3认同)

B-K*_*B-K 9

我遇到了同样的错误,但问题结果是因为我在我的解决方案中创建了一个新配置,该配置在另一个解决方案的引用程序集中不存在.

这可以通过打开相关解决方案并向其添加新配置来解决.

在我已经确认我的解决方案中的所有项目都具有正确的配置之后,这篇帖子让我想到检查引用的程序集:

http://gabrielmagana.com/2010/04/solution-to-the-outputpath-property-is-not-set-for-this-project/


ani*_*ion 5

如果仅当您尝试使用 MSBuild 从命令行编译项目时才收到此错误(就像我的情况一样),那么解决方案是将输出路径手动传递给 MSBuild,并使用类似/p:OutputPath=MyFolder.