2012-01-31 100 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文件:(

相關問題