2012-01-31 104 views
61

当我尝试从Visual Studio 2008中的x86调试模式编译我的项目时出现此错误。当我查看所投诉的项目的属性组时,我看到输出路径已设置。该项目没有设置OutputPath属性

下面是该属性组部分的.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> 

任何一个可以揭示出这个光?

注意:当我编译这个调试和任何CPU它的工作。

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

+0

好吧,你使用什么配置和平台?调试+ x86或其他? – 2012-01-31 20:56:32

+0

是VS配置管理器我选择debug + x86 – Amzath 2012-01-31 20:57:55

+0

什么是错误信息? – 2012-01-31 21:07:58

回答

7

该项目的Visual Studio中显示的错误(比方说A)没有问题。当我查看每个项目的逐行编译输出窗口时,我发现它正在抱怨项目A中被称为程序集的另一个项目(B)。将项目B添加到解决方案中。但是它并没有在项目A中被引用为项目引用,而是从不同位置的程序集引用。该位置包含为Platform AnyCpu编译的程序集。然后我从项目A中删除了组件参考,并添加了项目B作为参考。它开始编译。 不知道这个修复程序是如何工作的。

+11

Deffo使用\ p:Platform =“AnyCPU”而不是\ p:Platform =“Any CPU”来试用它。这种工作形式让我看到了这么久! – 2013-10-07 11:02:37

+0

AnyCPU(没有空间)也工作f或者我。谢谢李。 – willem 2016-10-05 05:23:57

+0

在将“解决方案或packages.config的路径”从.sln更改为.vbproj后,我在TFS 2017上运行构建过程时遇到了错误。将BuildPlatform更改为AnyCPU也适用于我。请参阅以下“平台”下的说明:https://docs.microsoft.com/en-us/vsts/build-release/tasks/build/visual-studio-build – 2018-03-01 14:59:58

26

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

检查解决方案中每个项目的参考文献部分。如果其中任何一个人在旁边有一个红色的x,那么它就会发现你的问题。解决方案无法找到该程序集引用。

错误信息有点混乱,但我已经看过很多次了。

+1

在我的情况下,它是一个“黄色警告” – AXMIM 2016-01-07 15:59:47

2

另一个疯狂的可能性: 如果你遵循一个简单的源代码管理安排,把Branch \ Main,Main和Release放在一起,你最终会添加一个来自Main而不是Branch \ Main的项目(假设你的工作解决方案是Branch \ Main),您可能会看到此错误。

解决方案很简单:引用正确的项目!

8

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

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

这篇文章给我的想法来检查引用的程序集后,我已经证实了我的解决方案中的所有项目都正确配置:

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

+0

感谢它帮助我:) – MikroDel 2014-05-22 10:14:02

2

增加了一个项目,当我遇到了这个问题一个解决方案,然后从同一解决方案中的另一个项目引用它 - 获取引用上的黄色警告图标,注意路径是空的。

该解决方案与@Amzath建议的类似,我的项目正在编译不同的目标框架,例如。 .NET 4.0 vs 4.5。

3

我有同样的错误,所以我看了项目设置,并在那里“构建”部分是“构建输出路径”选项。价值是空的。所以我填写“bin \”值错误消失了。它解决了我的问题。

2

在我的情况下,我的应用程序的内置地址被设置为关闭的另一台计算机,所以我打开它并重新启动VS并解决问题。

15

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

有时候新建的配置会添加到.wixproj文件进一步下跌的文件,也就是从他们的兄弟姐妹配置的定义由分开无关的XML元素。

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

+0

谢谢,这固定它对我来说。我添加到项目中的配置越多,我的行为就越奇怪。只要我清理了项目文件,一切正常。 (这个错误在2012年首次被报道?很好......) – Kirschi 2015-04-09 13:06:25

1

另一个原因:您从项目中添加项目引用A到项目B的解决方案X中。但是,已经包含项目A的解决方案Y现在已损坏,直到您还将项目B添加到解决方案Y.

2

我在添加新配置后删除了“调试“和”发布“配置。 在我的情况下,我使用了一个cmd文件来运行构建和发布过程,但是抛出了相同的错误。 对我来说,解决办法: 在下面的文件的csproj:

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

是将配置设置为“调试”如果我不指定一个明确的一个。将节点值从“调试”更改为我的自定义配置后,所有工作都顺利进行。希望这也将有助于谁阅读此:) :)

+0

这个解决方案的细节在这个论坛帖子中被提到。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/87b8aba4-9c61-4cfa-88f3-6236ee813582/msbuild-package-fails-with-outputpath-property-is-not-set-错误?论坛= msbuild – 2018-02-15 13:12:15

62

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

当为整个解决方案(和每个项目)添加“生产”配置时发现的结果OutputPath元素不是添加到csproj文件。

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

听起来像是一个小故障给我。

+4

很好的赶上这个mercurial错误。永远不会猜测,单一的斜线可能会造成巨大的差异。有一个好答案徽章。 – ouflak 2017-05-08 07:45:40

+4

在我的情况下,建立一个proj文件,'any cpu'和'anycpu'之间的区别是问题,但是你的文章帮助我看到了这一点。 – 2017-05-09 20:55:29

+0

谢谢你罗马你救了我的一天...如果我只能对你的答案加满100次! :) – Martin 2018-03-03 13:33:39

0

我有同样的问题, 只需编辑.wixproj使所有的 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ... >元素并排。

这解决了我的问题

1

这发生在我身上,因为我已经搬到下面一行接近的.csproj文件的开头:

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

它需要放在定义PropertyGroups后您的配置|平台。

0

我当时使用的WiX项目在x64的全局配置管理器中很难设置。在为解决方案制作自定义操作项目时,默认情况下,该文件在.csproj文件中默认为x86。所以我卸载了这个项目,通过修改所有x86x64进行编辑,保存,重新载入,并且很好的去追踪它。我不明白为什么我不得不这样做。配置管理器被设置为x64,但只是不会被设置在csproj文件:(

相关问题