2011-05-02 151 views
1

我有一個WPF C#4.0應用程序。之前我發佈的項目很好,但突然之間,一個特定的項目開始不發佈。成功構建後,我收到以下錯誤。Visual Studio 2010終極發佈問題

錯誤2找不到文件'obj \ x86 \ Release \ CSCDemo.exe'。 CSCDemo.0

下一個錯誤是「沒有發佈」

我知道CSCDemo.exe是在發行文件夾,因爲我檢查。

Microsoft Visual Studio 2010 Service Pack 1是否解決了這個問題?

+0

的可能重複[ClickOnce的 - 無法發佈,因爲一個項目未能建立( http://stackoverflow.com/questions/7869129/clickonce-cannot-publish-because-a-project-failed-to-build) – JohnFx 2012-06-15 03:16:01

回答

1

打包程序正在查看obj \ x86文件夾,而不是您的exe文件夾的正常bin \ release文件夾。我認爲這個問題與打包者在錯誤的地方查找有關,或者你改變了CSCDemo項目的項目屬性。你是否將它從x86應用程序改爲x64?

要嘗試的另一件事將是一個完整的重建。

+0

事實上,我沒有將它從x86改爲x64,它只是不會構建的項目。其他構建沒有任何問題。 – Jason 2011-05-02 19:58:18

+0

您是否刪除了所有動態創建的文件並完成了重建?也許該文件似乎在構建時存在,但事實並非如此。 – IAmTimCorey 2011-05-02 20:05:02

0

我不確定你的開發機器如何被這種方式弄髒,但是這也開始發生在我們團隊的幾個開發人員身上。

經過研究發現,Visual Studio(在我們的例子中爲2010)使用的內置構建/發佈腳本似乎存在缺陷。最重要的是,在發佈步驟可以抓取目標EXE文件之前,它在OBJ目錄上運行清除目標EXE文件。

解決方案
這有點的哈克解決方法,但它解決了這個問題對我來說。

修復方法是在發佈步驟之前將文件從/bin/文件夾複製回/obj/文件夾。不幸的是,我不知道通過IDE指定一個BeforePublish事件,因此您必須在文本編輯器中編輯.vbproj文件。

在最後的</project>標記前添加followign部分。

<Target Name="BeforePublish"> 
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" /> 
</Target> 
+0

在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以請將它們標記爲:http:// stackoverflow。com/questions/7869129/clickonce-無法發佈,因爲項目無法構建/ 11041599#11041599 – Kev 2012-06-15 00:05:58

+1

對不起。我只是花了很長時間用Google搜索這個,今天搜索這個答案,我去的每一個地方都是一個沒有答案的Q.試圖幫助其他人避免我的命運。 – JohnFx 2012-06-15 03:13:57

1

我剛剛受到這個問題的困擾。看來我的Avast Anti-Virus在創建文件後立即刪除它。我只是將我的項目文件夾添加到它的全局排除列表中,一切正常。

+0

那嚇人的東西只花了我一個小時。 – 2014-08-20 17:11:01

0

變化從86臺到任何CPU將有助於

構建>配置管理器 對CSCDemo平臺更改爲任意CPU