在C/C++中,您可以在代码中定义宏,如下所示:
#define OLD_WAY 1
Run Code Online (Sandbox Code Playgroud)
虽然我从来没有这样做过,但我认为C#中可以使用同样的东西.更重要的是,在C/C++中,可以通过执行以下操作来执行某些条件编译逻辑:
#if OLD_WAY == 1
int i = 0;
#else
int i = 1;
#endif
Run Code Online (Sandbox Code Playgroud)
好的,所以这一切都很酷.而且,我认为这种逻辑在C#中是可能的.我想知道的是,我如何在项目级别定义常量,以便我可以输入逻辑,如果我定义常量的一个方法或另一个代码块,我将允许我条件编译一个代码块如果我不这样定义?我假设它已经在项目的属性中的某个地方完成,但我如何定义它?
今天,在尝试发布应用程序以便我可以对其进行测试时,我突然收到此错误消息:
该项目d:\ ScratchSrc\TryNewReportViewer2017\TryNewReportViewer2017\TryNewReportViewer2017.csproj.vspscc无法在工作区中找到,或者您没有权限访问它.
这对我来说是一个谜,因为我以前从来没有得过这个,我上周刚刚使用这个应用程序.也发布它.
我找了.vspscc文件.找到它应该说的确切位置.所以,替代方案是我没有权限.我不明白为什么我不应该拥有我创建的机器上的文件的权限,但无论如何.那么,我如何获得自己文件的权限?
我正在与VS 2017,TFS 2015本地合作.
我正在使用C#2008在WPF中创建日期/时间用户控件.我的第一个用户控件.我也在使用Matthew MacDonald的书"C#2008中的Pro WPF".在那本书中,他强烈建议使用WPF自定义控件库项目模板创建用户控件; 所以我听从了他的建议.我已经完成了编写代码,这些代码将被我认为是代码隐藏文件.现在我准备写XAML了.
唯一的问题是,我刚发现没有相应的.xaml文件?所以,我不明白为什么在编写用户控件时使用WPF自定义控件库项目更好,或者更喜欢?
我的任务是对几年前编写的ASP.NET Web Forms应用程序进行一些小的更改,其实现者不再与我们在一起并且在几年前就离开了.
此应用程序中有6个报告,所有报告都使用某些版本的Crystal Reports.当我查看Web.Config文件时,我看到"CrystalDecisions.Shared,Version = 13.0.2000.0"和"CrystalDecisions.CrystalReports.Engineer,Version = 13.0.2000.0"之类的内容.这是什么版本的水晶?如果是Visual Studio 2010的Crystal Reports,我可以将它安装到我的PC上以便与VS 2013一起使用吗?(我没有VS 2010,也没有访问它.)
我只想验证一些事情.我相信如果我将using命令应用于SqlDataReader,它将关闭数据读取器并处理它.例如:
Using sdr As SqlDataReader = cm.ExecuteReader()
Dim someInt As Integer = sdr.GetInt32(0)
'other details and actions
End Using
Run Code Online (Sandbox Code Playgroud)
是否会在退出Using代码块后关闭sdr SqlDataReader .(我相信它会,但只是想验证.)
我刚刚下载并安装了适用于Visual Studio 2010 的Productivity Power Tools.我从VS 2010中退出,然后重新进入,以便加载新的加载项.它回来的那一刻我开始收到很多错误信息.例如:
"'数据库专业人员的VSTS Sql Server数据层应用程序'包未正确加载."
"'RadLangSvc.Pac kage,RadLangSvc.VS,Version = 10.0.0.0,Culture = neutral,PublicKeyToken ='package无法正确加载."
"'语言包'包没有正确加载."
这只是我在安装此加载项后立即收到的一些错误消息.在所有情况下,在每条错误消息之后都有其他文本:
"问题可能是由配置更改或安装另一个扩展引起的." (这里有一点明显的评论.)
让其他人使用Productivity Power Tools加载项遇到此问题吗?解决这个问题的唯一方法就是卸载它吗?还是有另一种方法让它发挥作用?(这个加载项中有一些东西,我真的很想使用它.)
我们正在使用Visual Studio 2015进行WPF项目。我们在项目中有一个名为Assets的文件夹。它在VS 2015中显示良好。其中的文件在解决方案资源管理器中显示良好。但是当我们构建它时,VS 2015会抱怨以下错误:
“错误CS0234类型或名称空间名称'Assets'在名称空间'CoreFramework'中不存在(您是否缺少程序集引用?)“
(CoreFramework是我们的解决方案和Assets所在项目的名称。)
我不知道CoreFramework中的文件夹如何,但是在构建它时,VS 2015只是看不到它。我曾尝试在VS 2015中清理项目和解决方案,但这完全没有帮助。同样的错误不断弹出。而且它们也会在我们的每晚建筑物中弹出。
那么,是什么原因导致VS 2015同时看到项目中的文件夹却看不到项目中的同一文件夹?
我正在写一个WPF应用程序的团队.我们必须这样做,以便当用户隐藏/显示不同的列时,它将在其中一个视图的ReportViewer控件中反映出来.在测试中,我们发现将数据添加到ReportViewer的数据源需要很长时间; 有时大约几秒到一分钟.我想为用户太久了.所以我正在尝试使用C#的异步并等待.但是,当我将await应用于进程hog然后编译它时,我从C#编译器得到一个错误,"无法等待'void'".在这种情况下,我无法改变.NET框架返回的内容,它的空白.那么我该如何处理这种情况呢?这是代码:
private async Task GenerateReportAsync()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Clear();
int iCols = 0;
//Get the column names
if (Columns.Count == 0) //Make sure it isn't populated twice
{
foreach (DataGridColumn col in dataGrid.Columns)
{
if (col.Visibility == Visibility.Visible)
{
Columns.Add(col.Header.ToString()); //Get the column heading
iCols++;
}
}
}
//Create a DataTable from the rows
var itemsSource = dataGrid.ItemsSource as IEnumerable<Grievance>;
if (this.rptViewer != null)
{
rptViewer.Reset();
}
rptViewer.LocalReport.DataSources.Clear();
if (m_rdl != …
Run Code Online (Sandbox Code Playgroud) Visual Studio 2019可以使用什么版本的TFS?在工作中,我们仍在使用TFS2015。我担心它可能太旧而无法与VS 2019一起使用。
这个问题就像一年前发布的一个标题为“xUnit 测试在本地运行但不在 Azure DevOps 上运行”的问题。然而,它的不同足以保证一个单独的问题。我正在使用 .NET 6 开发一个 ASP.NET MVC 项目。我有一个 Azure CI 管道,它使用 DotNetCoreCLI@2,而不是管道中的 VSTest@2 任务,就像使用 Azure 管道时通常包含的那样ASP.NET 模板。运行管道时,我在日志中收到以下警告消息:
D:\a\1\s\PharmacyWarehouseV2\PharmacyWarehouseV2.Test\HomeControllerTest.cs(18,49):警告 CS8625:无法将 null 文字转换为不可为 null 的引用类型。
查看 xUnit 测试(只有一个),很容易明白为什么要这样做:
var controller = new HomeController(null);
当时我主要对让单元测试工作感兴趣。现在我认为它不起作用的原因是因为 C# 编译器发现 NULL 被传递到 HomeController 中,在 HomeController 中它将被分配给 ILogger。因此,我开始寻找更好的日志记录方式。我遇到了另一个参考资料,但我无法再次找到(不幸的是)它说 .NET 6 不再与 ILogger 一起使用。那么,现在使用 .NET 6 在 MVC 控制器和 xUnit 单元测试中处理日志记录的首选方法是什么?
这是我的 YAML 文件中的 DotNetCoreCLI@2 任务:
- task: DotNetCoreCLI@2
displayName: 'Dot Net Core Test'
inputs:
command: 'test'
projects: '**/*[Tt]est*/*.csproj'
arguments: '--configuration $(BuildConfiguration)'
enabled: …
Run Code Online (Sandbox Code Playgroud) c# ×5
wpf ×3
tfs ×2
add-in ×1
asp.net ×1
async-await ×1
asynchronous ×1
using ×1
vb.net ×1
xunit ×1