我们正在开发一个具有Silverlight 2.0组件的ASP.Net Web应用程序项目。我们在Web应用程序属性中引用了silverlight项目,当我们在本地构建时,xap文件被复制到Web应用程序的ClientBin文件夹中。
问题在于,当我们在构建服务器上构建它时(使用CruiseControl.Net,虽然我不认为这是相关的)xap文件没有被复制。奇怪的是,这是有效的,但有些事情已经打破了,我们无法弄清楚是什么。
之前有人见过这个吗?
答案 0 :(得分:13)
排序!
不太清楚为什么,但事实证明我们在构建服务器上有一个过时的Microsoft.WebApplications.targets版本 - 我们的版本没有 CopySilverlightApplications 任务在里面。为了解决这个问题,我将这两个文件从C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\WebApplications
文件夹复制到了构建服务器上的相同位置。现在一切正常。
现在,如果我能找出哪个安装程序应该更新这些文件......
答案 1 :(得分:1)
我在项目文件中发现以下标记修复了它:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
e.g。
<PropertyGroup>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
可能在本地计算机上的此点之前设置了VSToolsPath,但是在构建服务器上没有设置。
答案 2 :(得分:0)
我遇到了类似的问题,其中一些文件没有被构建/移动到我的开发服务器。当我手动删除文件夹时,该问题最终获得了许可。出于某种原因,新重新创建的文件夹不会继承网络服务帐户和权限。