8
votes

I use teamcity to build Sharepoint projects using 64-bit MSBuild. All projects work fine instead of my workflow project. When using Framework 4.0 I get the error message

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Workflow.Targets(121,5): error MSB4018: The "CompileWorkflowTask" task failed unexpectedly. [V:\Workflows\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj] c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Workflow.Targets(121,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Windows\system32\config\systemprofile\AppData\Local\Temp\vjwduioy.tmp'. [V:\Workflows\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj]

I remembered that microsoft got rid of the old Workflow mechanism so I expected that it possibly only works with the older 3.5 framework and built the project with that but got another error:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets(37,45): error MSB4019: The imported project "C:\Windows\Microsoft.NET\Framework64\v3.5\Workflow.Targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

In Visual studio 2010 building works just fine.

2

2 Answers

6
votes

Found a solution: I had to create a folder in 'C:\Windows\system32\config\systemprofile\AppData\Local\Temp\'

This seemed to be a complete TeamCity-issue

0
votes

Solved by modifying of CMD environment.

The adding of C:\Windows\system32\config\systemprofile\AppData\Local\Temp\ did not help me.

And C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Temp‌ too.
Even more, after adding the \Temp folder under \SysWOW64... I was forced to use MSBuild x64 because of a new weird bug VBCSCompiler.exe causing CSC : error CS2001: Source file ... could not be found

Also I can't use MSBuild x64 all the time.
I can't use MSBuild x64 through DevEnv.com to build Visual Studio setup projects. DevEnv allows only to use x32 MSBuild.

Hopefully I have found a funny way to solve all these errors.
I have changed profile folder for CMD calls by override environment variables of CMD such as AppData and others.

Here is the full and working version of it - MSBuild-File-System-Redirector-fail-System32-to-SysWOW64

And sorry, but you can't use it without Wrapping a call of MSBuild and DevEnv by a batch file. Or the same from this answer.