我正在建立一个新的构建服务器,以支持我们的开发团队从VS2010迁移到VS2013.我们尚未迁移我们的TFS服务器,因此新的构建服务器已设置为带有2个代理的VS2010构建控制器.我还在机器上安装了VS2013(大锤方法).
我们所有的代码都已迁移到目标.Net 4.5.1并在开发人员的工作站上编译.
我们的大多数解决方案都很好,除了包含Web项目的解决方案 这些项目抱怨:
找不到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets".
导入的项目通过以下两行在构建过程中使用VisualStudioVersion变量:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Run Code Online (Sandbox Code Playgroud)
根据这个页面:
http://msdn.microsoft.com/en-us/library/vstudio/bb383796.aspx
对于4.5和4.5.1目标,将设置为"11.0".但构建机器只有上述路径的12.0版本:
"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
这些相同的.csproj线似乎在一个全新的VS2013项目中使用,所以我不确定它如何能够在构建机器上正确解析.
我正在编写ASP.Net核心Web应用程序并使用UseOpenIdConnectAuthentication它将其连接到IdentityServer3.模拟他们的ASP.Net MVC 5样本我正在尝试转换从Identity Server收到的声明,以删除" 当然不需要的低级协议声明 ".在MVC 5中,他们为SecurityTokenValidated Notification添加了一个处理程序,该处理程序AuthenticationTicket仅使用所需的声明来交换一个.
在ASP.Net Core中,为了做同等的事情,我认为我需要处理OnTokenValidated中OpenIdConnectEvents.但是,在该阶段,似乎没有检索到附加范围信息.如果我处理OnUserInformationReceived,则存在额外信息,但存储在用户而不是主体上.
在身份验证完成后,其他事件似乎都不是永久删除我不想保留的声明的明显位置.任何建议都感激不尽!
我有一个公开两个服务的WCF项目.当我在本地构建服务时,它工作正常.当TFS Build创建程序集时,其中一个服务不起作用.在调用服务之前,客户端应用程序抛出"索引超出数组范围"异常.
我们将TFS2010用于基于迁移的基于MSBuild的项目而不是新的工作流程过程.
我可以从我的机器上用版本构建版本替换TFS构建的DLL,并且服务开始工作.我可以将TFS内置版本的DLL放在我的机器上,我的本地服务开始失败.
我检查过的事情:
有点担心:我的机器是Windows 7 x64,构建机器是Windows Server 2003 x86.但是,我推测任何CPU都意味着在构建过程中这应该不是问题.
有没有人提出其他调查此问题的方法?
来自客户端的堆栈跟踪包括:
System.ServiceModel.FaultException 1[System.ServiceModel.ExceptionDetail]: Index was outside the bounds of the array. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GetMethodInfoFromExpr(EXPRMETHODINFO methinfo)
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GenerateCall(EXPRCALL pExpr)
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.VisitCALL(EXPRCALL pExpr)
at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Dispatch(EXPR pExpr)
at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Visit(EXPR pExpr)
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GenerateLambda(EXPRCALL pExpr)
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.VisitCALL(EXPRCALL pExpr)
at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Dispatch(EXPR pExpr)
at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Visit(EXPR pExpr)
at …