我们使用TFS 2015作为构建服务器,以便与xaml构建定义持续集成.TfvcTemplate12.xaml是我们正在使用的构建过程模板.当visual studio 2015问世时,我们通过将MSBuild参数设置为更新了构建模板
/p:VisualStudioVersion=14.0
Run Code Online (Sandbox Code Playgroud)
在这样做之后,构建服务器成功地能够使用C#6功能构建项目.现在已经发布了Visual Studio 2017以及C#7,我想我可以在构建服务器上安装visual studio 2017并更新MSBuild参数以使用v15.0.这似乎不起作用,构建代理仍然使用MSBuild v14.0,它无法在C#7中编译新功能.在进一步尝试中,我尝试将工具版本设置为15.0
/tv:15.0
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.构建失败,出现了一个非常通用的错误消息,并没有帮助我解决这个问题.有没有人得到这个工作?
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个包含a的Windows表单应用程序DataGridView.这DataGridView有3列,所有列都只是文本单元格:
TimestampConnectionMessage我遇到的问题是,当我添加一行(以编程方式)时,我发现如果文本太长,文本就会消失.具体来说,如果文本长度超过4563个字符,则文本消失.
我知道DataGridViewTextBoxColumn该类有一个属性调用MaxInputLength,可以限制输入的字符数.但根据文档,它只影响用户手动输入的文本.但是,我正在以编程方式输入此文本.
但是为了确保,我将此属性设置得非常高,但是当我通过4563字符限制时,仍会出现消失的文本问题.
我注意到的一件事是文本仍然存在(即底部的滚动条仍然可以滚动,就好像文本仍在那里)但我看不到文本本身.我也可以编辑文本.
我可以添加字符直到4563限制,但是一旦我通过它,文本就会消失.如果我按退格键返回到4563个字符,则会再次出现该文本.
我正在使用.NET 4.0进行开发,因为我必须支持Windows XP.
我正在使用 asp.net core 2.0 MVC 开发一个网站。我遇到过一种情况,我想根据某些逻辑将不同的授权过滤器应用于不同的控制器。例如,所有以前缀开头的控制器Identity都将运行一个授权过滤器,而所有其他控制器将运行另一个授权过滤器。
我按照这篇文章IControllerModelConvention展示了这可以通过在方法启动期间向方法添加实现来完成,services.addMvc(options)如下所示ConfigureServices。
services.AddMvc(options =>
{
options.Conventions.Add(new MyAuthorizeFiltersControllerConvention());
options.Filters.Add(typeof(MyOtherFilterThatShouldBeAppliedGlobally));
}
Run Code Online (Sandbox Code Playgroud)
在这个类中MyAuthorizeFiltersControllerConvention,您可以看到我根据命名约定向每个控制器添加了特定的授权过滤器。
public class AddAuthorizeFiltersControllerConvention : IControllerModelConvention
{
public void Apply(ControllerModel controller)
{
if (controller.ControllerName.StartsWith("Identity"))
{
controller.Filters.Add(new AuthorizeFilter(...));
// This doesn't work because controller.Filters
// is an IList<IFilterMetadata> rather than a FilterCollection
controller.Filters.Add(typeof(AnotherFilter));
}
else
{
controller.Filters.Add(new AuthorizeFilter(...));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我无法typeof(filter)像在ConfigureServices方法启动期间那样使用重载以这种方式添加过滤器。我需要这个,因为我想要添加的一些过滤器需要依赖项注入来实例化它们。
我的问题是我怎样才能实现这一目标?有可能吗?