2011-05-02 146 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