Rajko
Rajko

Reputation: 291

ClickOnce - Cannot publish because a project failed to build

When I try to publish my (WPF, C#) application, I get these errors:
Cannot publish because a project failed to build.
Could not find file 'obj\x86\Debug\MyAPP.exe'

I get these errors no matter where from I publish: publish wizard, build menu or right click on project - publish.
First it was working ok, but I did the following:
I changed the date om my computer to 10/10/2013, I was trying something else.
I forgot this and I click build. Then I set the proper date on computer. After that I get these errors.
Also every time I click run Visual Studio builds project whether there are changes in project.
I also noticed that when I set the date after 10/10/2013 it works ok.
I am guessing that I am looking for some settings in my project where this date of build is set.
I tried build, rebuild, clean solution.

Upvotes: 26

Views: 42305

Answers (11)

Doruk
Doruk

Reputation: 912

Closing and Opening Visual Studio worked for me.

Upvotes: 0

willyMon
willyMon

Reputation: 639

In my case, the problem arise when I added the following section in .csproj File:

<Target Name="AfterBuild">
</Target>

Upvotes: 0

user489998
user489998

Reputation: 4531

I've had this error when I'd been swapping git branches. A Rebuild All fixed this for me.

Upvotes: 0

UnhandledExcepSean
UnhandledExcepSean

Reputation: 12804

I just ran into the problem today. In my particular case, it was caused by Microsoft Windows Update, Microsoft Security Advisory 2661254 (concerning minimum certificate key length).

I uninstalled that update and publish began working as it always had. This is only a temporary work around and means you should probably regenerate your keys/certificates.

Upvotes: 0

MU0r
MU0r

Reputation: 11

Just create a new ClickOnce manifest certificate, and it will work again.

Upvotes: 1

Rajko
Rajko

Reputation: 291

I solved my problem. The problem was the "Modified" time of some files. I used the program Timestamp to fix it.

As I said in my question, the problem was that I build the solution and the date was in the future. Because of that, every time I pressed F5 Visual Studio was building the whole solution again and Publish ClickOnce wasn't working.

Upvotes: 2

ptfaulkner
ptfaulkner

Reputation: 712

I have sometimes had problems with an ASP.NET project publishing, because the publish wizard couldn't delete files in the directory it was trying to publish the files to.

Try clearing out those file manually before publishing. Also check the output window; it will sometimes give you some hints as to why the publish failed.

Upvotes: 0

JohnFx
JohnFx

Reputation: 34917

I'm not sure exactly how your development machine can get fouled up this way, but this started happening for several developers in our group too.

After researching it, it appears that the built in build/publish script that Visual Studio (2010 in our case) uses has a flaw in the order that it does things. Most importantly it runs a cleanup on the OBJ directory deleting the target EXE file before the publish step can grab it.

The solution
This is somewhat of a hacky workaround, but it solved the problem for me.

The fix is to copy the file back to the /obj/ folder from the /bin/ folder right before the publish step. Unfortunately there is no way that I know to specify a BeforePublish event through the IDE, so you will have to edit the .vbproj file in a text editor.

Add the following section just before the final </project> tag.

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

Upvotes: 2

RobinDotNet
RobinDotNet

Reputation: 11877

This is a problem with Visual Studio that can occur when you have add-ins installed. Instead of using the Publish button in the Publish tab, use Build/Publish from the menu on the top of Visual Studio.

If you use the Publish button, it runs through the add-ins before doing the build (or something like that). If you use Build from the menu instead, it goes straight to msbuild and ignores any add-ins you have installed.

If you have DevExpress installed and are still having problems, check out this article: http://www.devexpress.com/Support/Center/p/Q260132.aspx

Upvotes: 100

Tipx
Tipx

Reputation: 7515

If nothing else works, try this :

  1. Set your date to the proper date.
  2. With VS closed, delete all the bin and obj folders of your solution.
  3. Create a new empty solution.
  4. Add your existing projects to the solution.
  5. Add back the needed references.
  6. Rebuild to make sure you didn't miss anything.
  7. Publish.

If you want, you can also just try step 1, 2, 6, 7 before, if you don't feel like making a new solution.

Upvotes: 1

Alex Norcliffe
Alex Norcliffe

Reputation: 2489

With the date back to normal, close VS and try deleting your *.suo files next to the *.sln files and then reopen the solution

Upvotes: 3

Related Questions