我正在使用Unity并尝试从文件资源管理器侧栏中排除.meta文件.我导航到文件 - >首选项 - >用户设置(或工作区设置,无所谓),并将文件的内容设置为以下内容:
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"**/.meta": true
}
}
Run Code Online (Sandbox Code Playgroud)
......并保存了我的更改.然而,当我单击"刷新"图标或关闭/重新打开我的文件夹视图时,我仍然看到左窗格中显示的所有.meta文件.我在这里做错了吗?
(如果这个问题措辞不够,有人可以帮我清理一下吗?)
我有一个Azure功能(2.0),它依赖于一些System.Drawing代码.我添加了一个NuGet引用System.Drawing.Common(4.5.0).
但是,在发布应用程序后,调用该函数时,会产生错误:
System.Private.CoreLib:执行函数时出现异常:[MyFunctionName].System.Drawing.Common:此平台不支持System.Drawing.
据我所知,现在.NET Core支持System.Drawing.Common,我相信我的Azure功能正在运行的环境.但实际项目是.NET Standard 2.0项目.
我很困惑如何解决这个问题.我已经尝试将项目转换为.NET Core 2.1项目,但这导致了与"元数据生成失败"相关的奇怪错误,并且无法找到System.Runtime.
我的项目引用了Microsoft.Azure.WebJobs.Extensions.EventGrid(2.0.0-beta2),如果这是相关的.
azure .net-core azure-functions .net-standard azure-functions-runtime
我一直觉得这很令人困惑。Microsoft提供了一个WindowsAzure.Storage Nuget软件包,该软件包可让您使用blob存储(例如创建blob等)进行工作。还有Microsoft.Azure.Storage。*软件包也可以完成相同的任务,也由Microsoft创作。如果您的项目碰巧同时依赖于两者,则可能会发生命名冲突,例如(“ Microsoft.Azure.Storage.Common”和“ Microsoft.WindowsAzure.Storage”都存在“ CloudStorageAccount”类型)。
这是两个选择的链接:
https://docs.microsoft.com/zh-cn/dotnet/api/overview/azure/storage?view=azure-dotnet
https://github.com/Azure/azure-storage-net/blob/master/README.md
有什么区别?什么时候我会被激励使用一种方法?
我可能只是神经质,但我经常发现自己处于发布事件的类的情况下,我觉得从类本身(例如在构造函数中)订阅此事件很方便,而不仅仅是从外部课程订阅.
这对我来说听起来很合理,但我无法忍受这种拙劣的做法,因为我总是面临这样一个问题:"为什么不执行你在事件处理程序中提供的动作在触发事件的代码中?"
public class Button
{
public Button()
{
this.Click += someHandler; // bad practice?
}
public event EventHandler Click;
public void HandleInput()
{
if (someInputCondition)
{
// Perform necessary actions here rather than
// subscribing in the constructor?
this.Click(this, ...);
}
}
}
Run Code Online (Sandbox Code Playgroud)
订阅自己的活动有什么缺点吗?
揭示我的无知:为什么静态库项目(在我的情况下在Visual Studio中)在项目属性页面中没有链接器设置?我认为"链接"是一个很大的问题:图书馆,但显然我从根本上误解了一些东西.
我需要能够以不同的用户身份运行流程,并且我已经找到了大量资源和不同的方法来实现这一目标.问题是,我需要运行一个非exe进程,例如带有html扩展名的路径,或者在我的情况下,运行" http://somewebserver/someApp.application ".
存在一个已知问题,即启动的进程不从其启动器继承模拟上下文,并且还存在一个已知问题,即在不同凭据下启动的进程需要是可执行文件(.exe).
但是,我如何以不同的用户身份启动.application文件(例如)?
(我尝试了各种p /调用CreateProcessWithLoginW的组合,在ProcessStartInfo中设置用户/密码凭证等.每个都面临上面提到的相同限制.)
十多年来我一直是.NET开发人员,所以这是一个我从未知道答案的可耻问题.我明白了 - 如果参数为null,我可以抛出ArgumentNullException.如果我尝试取消引用空值,将抛出NullReferenceException.
但是如果我有如下代码怎么办:
var someVitalObject = someServiceReference.GetVitalObject();
if (someVitalObject == null)
{
throw new IDontKnowWhatException(); // what exception should I throw here?
}
Run Code Online (Sandbox Code Playgroud)
现在,这不一定是早先应该抛出异常的服务的问题.
我知道Object.GetHashCode可以为同一个对象(例如,相同的字符串)返回不同的值,具体取决于平台.因此我不能依赖于这个跨平台的简单哈希.
但我可以依赖System.Random吗?无论我是否使用Microsoft .NET/Mono/x86/x64等,它是否会为给定的种子产生相同的结果?
我目前使用以下方法上传 CloudBlockBlob:
CloudBlockBlob.UploadFromStreamAsync
然后我马上在上面设置了一堆用户元数据。
问题是:我有一个事件网格事件,在上传 blob 时会触发该事件,但事件处理程序需要元数据。长话短说,这是一个竞争条件,我必须“希望”在我的事件处理程序响应块 blob 上传之前已经设置了元数据。
是否有某种方法可以在单个操作中上传块 blob(文件)并设置其元数据?
我从 Visual Studio 部署了我的 Azure 函数,作为我的函数项目的一部分,我有一个 host.json 文件,它指定了我需要为生产与开发更改的一些设置。(特别是 extensions:queues:batchSize 设置)。不幸的是,原因在很大程度上超出了我的控制范围(我在开发中使用的数据库比生产数据库级别低,而更高的批量会导致它很快崩溃)。
我希望能够为开发指定小批量,为生产指定更高的批量。我已经有了生产和开发部署配置文件,但我看不到任何改变 host.json 文件的方法。
是否有 1) 一种本地执行此操作的方法,和/或 2) 我应该使用更好的 DevOps 实践来消除此问题?我还不能使用 Azure DevOps(长话短说),但也许只为开发和生产设置单独的分支就足够了?