小编Fab*_*Fab的帖子

.Net Core构建解决方案

如果您尝试从使用visual studio制作的解决方案的顶级目录中的命令行运行:

dotnet build
Run Code Online (Sandbox Code Playgroud)

我的解决方案是这样的架构:

MySolution.sln
   > src
       > MyProject1
           > project.json
       > MyProject2
           > project.json
   > test
       > MyProject.Test
           > project.json
Run Code Online (Sandbox Code Playgroud)

它会因以下错误而失败:

Couldn't find 'project.json' in current directory
Run Code Online (Sandbox Code Playgroud)

如何构建解决方案而不必明确指定每个项目(然后没有相关的维护)?

.net-core dotnet-cli

23
推荐指数
2
解决办法
1万
查看次数

如何在.NET Core中修改文件访问控制

我正在尝试更改.NET Core中文件的权限.但是,似乎FileInfo已经没有SetAccessControl了.

// Create a new FileInfo object.
FileInfo fInfo = new FileInfo(FileName);

// Get a FileSecurity object that represents the 
// current security settings.
FileSecurity fSecurity = fInfo.GetAccessControl();

// Add the FileSystemAccessRule to the security settings. 
fSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                Rights,
                                                ControlType));

// Set the new access settings.
fInfo.SetAccessControl(fSecurity);
Run Code Online (Sandbox Code Playgroud)

目标只是将执行权添加到文件的当前所有者(不是Windows或Unix特定功能).

有关如何在.NET Core上执行此操作的任何线索?

c# file-permissions .net-core

16
推荐指数
4
解决办法
6161
查看次数

如何使用 BuildManager 在 Visual Studio 2017 (MsBuild 15) 上构建 .Net Core 项目或解决方案

我想构建一个简单的项目或解决方案(VS 2017,.NET Standard/.Net Core)

ProjectCollection pc = new ProjectCollection();
pc.DefaultToolsVersion = "15.0";            
ILogger logger = new ConsoleLogger();
pc.Loggers.Add(logger);
Dictionary<string, string> globalProperty = new Dictionary<string, string>();
BuildRequestData buildRequest = new BuildRequestData(fileName, globalProperty, null, new[] { target }, null);
BuildParameters buildParameters = new BuildParameters(pc)
{
    DefaultToolsVersion = "15.0",
    OnlyLogCriticalEvents = false,
    DetailedSummary = true,
    Loggers = new List<Microsoft.Build.Framework.ILogger> { logger }.AsEnumerable()
};
var result = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest);
return result.OverallResult == BuildResultCode.Success;
Run Code Online (Sandbox Code Playgroud)

但是构建失败并出现以下错误

MSBUILD : warning MSB4196: The "*.overridetasks" files could …
Run Code Online (Sandbox Code Playgroud)

c# msbuild .net-core visual-studio-2017

6
推荐指数
1
解决办法
1885
查看次数

VisualStudio 2015 中 csx 的智能感知

我是编程 cs 脚本(csx 文件)的新手。

但我的问题是我没有任何智能感知。如何在 Visual Studio 2015 中获得智能感知支持?

visual-studio cs-script csx

5
推荐指数
1
解决办法
1743
查看次数

在C#中缓存异常实例是一个好习惯吗

我正试图在这个问题上找到答案,即:

以下代码是一个好习惯吗?
我应该尝试在任何可能的地方重现它吗?如果没有,为什么?

public class ExceptionHelper
{
    private static readonly HttpException _errorReadingRequest = new HttpException(500, "Error reading request. Buffer is empty.");
    public static Exception ErrorReadingRequest { get { return _errorReadingRequest; } }
}

public class ExceptionThrower
{
    public static void ThrowCached1()
    {
        throw ExceptionHelper.ErrorReadingRequest;
    }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我试图在几个地方放入缓存的实例,它似乎保留了来自MSDN的堆栈跟踪,

堆栈跟踪从抛出异常的语句开始,并以捕获异常的catch语句结束.在决定将throw语句放在何处时,请注意这一事实.

我理解为" 它将堆栈跟踪存储在抛出,而不是创建 ".但是,我想知道当多个线程尝试抛出相同的缓存异常实例时是否会出现问题.

在同一个MDSN页面上,他们正在使用一个辅助函数,它似乎在框架中,他们正在做同样的事情:辅助函数,它重新创建异常并抛出.

注意:我知道这不是常见的情况,因为大多数情况下,您希望将特定消息存储在异常中,以便更容易理解正在发生的事情.

也许问题刚好是关键字线程安全的没有

语境:

我偶然发现了这种代码,同时代码审查了一些性能敏感的应用程序代码.目标是在启动期间创建最大的实例,然后在执行期间从不(或几乎从不)实例,以限制GC性能影响(特别是因为堆碎片与GCHandle事物发生).我对这段代码感觉不好,但需要事实来支持我的重构.

c# multithreading caching exception-handling exception

3
推荐指数
1
解决办法
688
查看次数

使用枚举类型进行 JSON 反序列化

我正在尝试使用UnityEngine.JsonUtility. 它工作正常,但我的枚举类型没有得到正确转换。我尝试使用该EnumMember属性,但仍然没有运气。

我该如何解决?

笔记

我正在使用解决方案读取多个文件并将它们存储在数组中。

[Serializable]
public class EquipementItem
{
    public enum ItemTypes
    {
        None,
        Armor,
        Weapon
    }

    public enum SlotTypes
    {
        Head,
        Shoulders,
        Chest,
        Bracers,
        Gloves,
        Waist,
        Legs,
        Boots,
        Weapon
    }

    public int ID;
    public string Name;

    public ItemTypes ItemType;
    public SlotTypes SlotType;
}
Run Code Online (Sandbox Code Playgroud)

和 json 文件

{
"Items": [
{
  "ID": "1",
  "Name": "Basic Sword",
  "ItemType": "Weapon",
  "SlotType": "Weapon"
},
{
  "ID": "2",
  "Name": "Advanced Sword",
  "ItemType": "Weapon",
  "SlotType": "Weapon"
},
{ …
Run Code Online (Sandbox Code Playgroud)

c# enums json unity-game-engine

3
推荐指数
1
解决办法
9595
查看次数