无法使用 msbuild 构建工作流项目 (Sharepoint 2010)
我使用 teamcity 使用 64 位 MSBuild 构建 Sharepoint 项目。所有项目都工作正常,而不是我的工作流程项目。使用 Framework 4.0 时收到错误消息
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Workflow.Targets(121,5): 错误 MSB4018:“CompileWorkflowTask”任务意外失败。 [V:\Workflows\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj] c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Workflow.Targets(121,5): 错误 MSB4018:System.IO.DirectoryNotFoundException:找不到 路径的一部分 'C:\Windows\system32\config\systemprofile\AppData\Local\Temp\vjwduioy.tmp'。 [V:\Workflows\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow\MyCustomer.WFs.TranslationWorkflow.csproj]
我记得微软摆脱了旧的工作流机制,所以我预计它可能只适用于旧的 3.5 框架并用它构建了项目,但出现了另一个错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets(37,45):错误 MSB4019:导入的项目“C:\Windows\Microsoft .NET\Framework64\v3.5\Workflow.Targets”未找到。确认声明中的路径正确,并且该文件存在于磁盘上。
在 Visual studio 2010 中构建效果很好。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
找到了解决办法:
我必须在“C:\Windows\system32\config\systemprofile\AppData\Local\Temp\”中创建一个文件夹,
这似乎是一个完整的 TeamCity 问题
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
通过修改CMD环境解决。
添加
C:\Windows\system32\config\systemprofile\AppData\Local\Temp\
对我没有帮助。还有
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Temp
。更重要的是,在 \SysWOW64 下添加 \Temp 文件夹后...我被迫使用 MSBuild x64 因为 新的奇怪错误 VBCSCompiler.exe 导致 CSC : 错误 CS2001: 找不到源文件...
而且我不能一直使用 MSBuild x64。
我无法通过 DevEnv.com 使用 MSBuild x64 来构建 Visual Studio 安装项目。 DevEnv 仅允许使用 x32 MSBuild。
希望我找到了一种有趣的方法来解决所有这些错误。
我通过覆盖 CMD 的环境变量(例如 AppData 等)更改了 CMD 调用的配置文件文件夹。
这是它的完整工作版本 - MSBuild-File-System-Redirector-fail-System32-to-SysWOW64
抱歉,如果没有 通过批处理文件包装 MSBuild 和 DevEnv 的调用。或者与此答案相同。
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.