我正在使用Visual Studio 2010 Beta 2.我有一个[TestClass],有一个[TestInitialize],[TestCleanup]有几个[TestMethods].
每次运行测试方法时,都会运行初始化和清理方法!
我的印象中[TestInitialize]和[TestCleanup]应只运行一次,每次当地试运行.
那是对的吗?如果没有,这样做的正确方法是什么?
c# mstest visual-studio-2010 visual-studio vs-unit-testing-framework
我正在尝试对一组数字进行排序,这些数字是字符串,我希望它们按数字排序.
问题是我无法将数字转换为int.
这是代码:
string[] things= new string[] { "105", "101", "102", "103", "90" };
foreach (var thing in things.OrderBy(x => x))
{
Console.WriteLine(thing);
}
Run Code Online (Sandbox Code Playgroud)
输出:101,102,103,105,90
我想:90,101,102,103,105
编辑:输出不能是090,101,102 ......
更新了代码示例以说出"事物"而不是"尺寸".数组可以是这样的:
string[] things= new string[] { "paul", "bob", "lauren", "007", "90" };
Run Code Online (Sandbox Code Playgroud)
这意味着它需要按字母顺序和数字排序:
007,90,鲍勃,劳伦,保罗
我正在尝试使用 Azure DevOps 管道构建在 .NET 5.0 中构建一个项目,但收到此错误
2020-11-14T01:59:45.8238544Z [command]"C:\Program Files\dotnet\dotnet.exe" build D:\a\1\s\XXX.csproj "-dl:CentralLogger,\"D:\a\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.178.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\"*ForwardingLogger,\"D:\a\_tasks\DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b\2.178.0\dotnet-build-helpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll\""
2020-11-14T01:59:46.1472016Z Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
2020-11-14T01:59:46.1473316Z Copyright (C) Microsoft Corporation. All rights reserved.
2020-11-14T01:59:46.1473902Z
2020-11-14T01:59:46.6006398Z Determining projects to restore...
2020-11-14T01:59:47.2059773Z Restored D:\a\1\s\XXX.csproj (in 234 ms).
2020-11-14T01:59:47.2119638Z 1 of 2 projects are up-to-date for restore.
2020-11-14T01:59:47.3209350Z ##[error]C:\Program Files\dotnet\sdk\3.1.403\Microsoft.Common.CurrentVersion.targets(1177,5): Error MSB3644: The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your …Run Code Online (Sandbox Code Playgroud) 当我开始处理我IPAddress\CompanyName\ProductName\DevBranch在TFS中下载的项目时,将其映射到C:\DevBranch.但现在我想将根文件夹映射IPAddress\CompanyName到本地路径,所以我已映射到C:\CompanyName.但是,IPAddress\CompanyName\ProductName\DevBranch仍然映射到C:\DevBranch而不是C:\CompanyName\ProductName\DevBranch.
如何更改此本地路径的映射?我想让它自动将所有文件从旧本地文件夹移动到新的本地文件夹.
我查找的所有内容都在谈论编辑工作区,并且似乎只适用于更改根文件夹.当我去编辑我的工作区时,显示的唯一本地映射是C:\CompanyName.没有什么可以让我在子文件夹的基础上更改映射.
编辑:我现在尝试通过添加一个新的工作文件夹来编辑工作区,将源控制文件夹设置为IPAddress\CompanyName\ProductName\DevBranch和本地文件夹C:\DevBranch,然后将本地文件夹更改为C:\CompanyName\ProductName\DevBranch,它仍然无法正常工作.源代码管理资源管理器仍显示C:\DevBranch为本地文件夹.请帮忙.我不知道该怎么办.
编辑:我能够IPAddress\CompanyName在源代码管理资源管理器中右键单击,然后单击高级>删除映射.但是,当我右键单击时,不存在这样的选项IPAddress\CompanyName\ProductName\DevBranch.这就像某种僵尸映射.我无法更改它,我无法将其删除,并且Source Control Explorer会在不承认大多数情况下存在映射的情况下继续显示它.
这是一个棘手的问题.我怀疑它需要一些文件系统的高级知识才能回答.
我有一个针对.NET framework 4.0的WPF应用程序"App1".它有一个Settings.settings文件,用于生成App1.exe.config存储默认设置的标准文件.当用户修改设置时,修改将进入AppData\Roaming\MyCompany\App1\X.X.0.0\user.config.这是所有标准的.NET行为.但是,有时,我们发现user.config客户机器上的文件不是应该的,导致应用程序崩溃.
问题看起来像这样:user.config如果用XML填充它应该是大小,但是它只是一堆NUL字符而不是XML.它的角色0一遍又一遍地重复着.我们没有关于导致此文件修改的内容的信息.
如果我们只是删除,我们可以在客户的设备上修复该问题,user.config因为公共语言运行时只会生成一个新问题.他们将失去他们对设置所做的更改,但可以再次进行更改.
但是,我在另一个带有另一个XML文件的WPF应用程序"App2"中遇到了这个问题info.xml.这次是不同的,因为文件是由我自己的代码而不是CLR生成的.常见的主题是两个都是C#WPF应用程序,都是XML文件,在这两种情况下,我们完全无法在测试中重现问题.这可能与C#应用程序与XML文件或文件交互的方式有关吗?
我们不仅无法在当前的应用程序中重现该问题,而且我甚至无法通过编写有意产生错误的自定义代码来重现该问题.我找不到单个XML序列化错误或文件访问错误导致文件填充空值.那么可能会发生什么?
App1 user.config通过调用Upgrade()以及Save()获取和设置属性来访问.例如:
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)
info.xml通过序列化和反序列化XML来访问App2 :
public Info Deserialize(string xmlFile)
{
if (File.Exists(xmlFile) == false)
{
return null;
}
XmlSerializer xmlReadSerializer = new XmlSerializer(typeof(Info));
Info overview = null;
using (StreamReader file = new StreamReader(xmlFile))
{
overview = (Info)xmlReadSerializer.Deserialize(file);
file.Close();
}
return overview;
}
public void …Run Code Online (Sandbox Code Playgroud) 我有一个包含5个C#项目的Visual Studio解决方案.我希望程序集版本在每个项目中都匹配.但看起来我必须进入每个项目的属性并一次单击每个项目的程序集版本.有没有办法处理解决方案,就像它只有一个版本作为一个整体适用于每个项目?
c# projects-and-solutions version visual-studio visual-studio-2017
我需要为我的项目使用.NET framework 3.5,因为它使用了一些较旧的功能.
Visual Studio中的工具提示未显示与定位后续框架时相同的描述.我只看到方法签名和数据类型等基本信息.有没有办法来解决这个问题?
我查找了xml文件,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5看起来它只有3.5 Client Profile的文件.
我尝试从此链接重新安装3.5框架:https://www.microsoft.com/en-us/download/details.aspx?id = 21
我不知道它是否有效.当我运行可执行文件时没有任何反应 我试过以管理员身份运行.当我从命令提示符运行它时没有输出.
我注意到该文件比最新.NET框架的下载量小了一百倍.这是否意味着它不包括它应该包含的文件?
我猜测是否有修复,它要么为.NET 3.5获取正确的xml文件,要么让Visual Studio使用.NET 4.6的xml文件,即使我的项目是针对3.5.
提前致谢!
我有一个垂直滚动视图,我想动态添加内容。为此,我已将Content Size Fitter组件和Vertical Layout Group组件附加到Content游戏对象,以便每当我实例化新的游戏对象作为其子对象时,其Rect变换都会自动增长。如果滚动条已经在底部,那么在底部添加新对象后,我想将滚动条保持在底部。所以我这样做是这样的:
if ( scrollRect.verticalNormalizedPosition == 0 )
{
isAtBottom = true ;
}
ScrollViewItem item = Instantiate( scrollViewItem, scrollRect.content ) ;
if ( isAtBottom )
{
scrollRect.verticalNormalizedPosition = 0 ;
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为新实例化的滚动视图项在我设置verticalNormalizedPosition为零时尚未增加Rect变换的大小。因此,当Rect Transform最终更新时,滚动到底部为时已晚。
举例来说,假设我的内容高度为400像素,滚动条一直位于底部。现在,我向其添加一个100像素高的对象。然后,我将滚动条发送到底部,但它仍然认为内容为400像素高。然后,内容大小将更新为500像素,但是滚动条向下缩小了400像素,因此它仅下降了80%,而不是100%。
有两种方法可以解决此问题。我想要一种方法来立即强制更新Content Size Fitter,或者作为一种事件来响应Content Size Fitter更新。
通过研究和实验,我将这些行按确切的顺序排列几乎成功了:
Canvas.ForceUpdateCanvases();
scrollRect.content.GetComponent<VerticalLayoutGroup>().CalculateLayoutInputVertical() ;
scrollRect.content.GetComponent<ContentSizeFitter>().SetLayoutVertical() ;
scrollRect.verticalNormalizedPosition = 0 ;
Run Code Online (Sandbox Code Playgroud)
但是,它并没有完全滚动到底部。始终相距约20像素。所以我想知道是否还有一些我不希望发生的布局操作。也许是填充之类的东西。
基于此视频https://www.youtube.com/watch?v=IVvJX4CoLUY我添加了使用 System.Web; 使用 System.Web.Http; 但我仍然得到 apicontroller 找不到的错误状态,等等,下图是我面临的错误:
下面是我的代码:
using System;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Collections.Generic;
namespace UploadToServer.Server.Controllers
{
public class UploadsController : ApiController
{
[Route("api/Files/Upload")]
public async Task<string> Post()
{
try
{
var httpRequest = HttpContext.Current.Request;
if (httpRequest.Files.Count > 0)
{
foreach (string file in httpRequest.Files)
{
var postedFile = httpRequest.Files[file];
var fileName = postedFile.FileName.Split('\\').LastOrDefault().Split('/').LastOrDefault();
var filePath = HttpContext.Current.Server.MapPath("~/Uploads/" + fileName);
postedFile.SaveAs(filePath);
return "/Uploads/" + fileName;
}
}
}
catch (Exception exception) …Run Code Online (Sandbox Code Playgroud) 为什么即使使用HTTP协议,也需要用IP地址指定端口号?例如-- http://xyz:8080...这甚至意味着什么?我们已经知道,使用HTTP时,请求将在端口80处得到服务,那么为什么要显式指定端口?
请回答这个愚蠢的问题。
c# ×8
.net ×2
.net-3.5 ×1
.net-5 ×1
alphabetical ×1
alphanumeric ×1
azure-devops ×1
directory ×1
filesystems ×1
http ×1
intellisense ×1
ip ×1
layout ×1
linq ×1
mapping ×1
mstest ×1
networking ×1
ntfs ×1
path ×1
port ×1
scroll ×1
scrollbar ×1
sorting ×1
tfs ×1
version ×1
web ×1
web-services ×1
workspace ×1
xamarin ×1
xml ×1