小编aol*_*wka的帖子

将ItemGroup转换为分隔字符串

我的问题几乎与在MSBuild中创建一个字符串的ItemGroup相同,但是那里提供的解决方案似乎仍然存在现有的分隔符.这是我正在尝试做的简化片段:

<Target Name="Testing">
  <ItemGroup>
    <Files Include="$(RootDirectory)\*.*"/>
  </ItemGroup>

  <Message Text="@(Files->'%(Filename)%(Extension) ')"/>
</Target>
Run Code Online (Sandbox Code Playgroud)

我想要的输出是这样的:

file1.cs file2.cs file3.cs
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码段会产生以下输出

file1.cs ;file2.cs ;file3.cs
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

msbuild transform itemgroup

15
推荐指数
1
解决办法
4110
查看次数

如何确定进程是否在C#中管理?

一些搜索返回此结果:哪些进程正在运行托管代码以及哪个版本?

但是,我想知道是否有一种"更好"的方式,然后简单地迭代加载的模块?寻找字符串"mscorwks.dll"似乎有点古怪.通过MSDN上的Process Class读取似乎并没有指出一个明显的解决方案.

做出的假设

  1. .NET 4.0
  2. 我手头有一个"过程"

谢谢

c# process

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

我可以从命令行对 C# 文件运行 EditorConfig 吗?

IDE 中较新版本的 Visual Studio 支持 EditorConfig,这很有用,但是如果我可以从命令行(因此在自动化中)运行它,那将是最好的。

有没有像 Visual Studio IDE 一样支持所有 EditorConfig 设置的独立工具?Microsoft Docs:EditorConfig 的 .NET 编码约定设置

这是我迄今为止发现的:

除了一个独立的工具,有没有办法强制 Visual Studio 运行代码清理“无头”?那可能是我唯一的解决方案。

c# code-cleanup editorconfig

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

当方法具有属性时,StyleCop SA1623 是否会错误触发?

我在代码中触发SA1623: PropertySummaryDocumentationMustMatchAccessors的多个实例,其中我有一个与此类似的属性:

    /// <summary>
    /// Gets or Sets the location to check for files.
    /// </summary>
    [Required]
    public string SourceDirectory { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是MSBuild 自定义任务库中使用的代码,相关属性是Microsoft.Build.Framework.RequiredAttribute(如果有任何含义)。

我使用的是StyleCop 4.7.14.0,没有对默认规则进行任何修改。快速搜索 StackOverflow、Google 以及项目的 Open Issue 日志和文档,没有发现任何提及此怪癖的情况,我是否做错了什么,这是一个错误吗?

谢谢。

c# stylecop

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

仅使用 SAS 令牌在 PowerShell 中上传

我有一个SAS 令牌,格式如下:

https://name.blob.core.windows.net/container?sv=2015-04-05&sr=b&sig=abc123&se=2017-03-07T12%3A58%3A52Z&sp=rw

我正在尝试使用AzPowershell 中提供的 Cmdlet 将内容上传到此 blob。我无法找到仅需要上述 SAS 令牌和要上传的文件的 API。

读了这篇reddit 帖子,我的选择似乎是:

  1. 解析出StorageAccountName(在示例中name)、Container(在示例中container) 和SASToken(在上例中sv=2015-04-05&sr=b&sig=abc123&se=2017-03-07T12%3A58%3A52Z&sp=rw),然后使用New-AzStorageContext/ Set-AzStorageBlobContent。这或多或少是此 StackOverflow 帖子中的答案(仅使用 SAS 令牌连接到 Azure 存储帐户?
  2. 使用Invoke-WebRequest或其同类基本上自己执行 REST 调用。

我想使用Az尽可能多的提供的 cmdlet,因此从选项 1 开始,似乎没有 API 可以解析它,我能找到的最接近的是这个 StackOverflow 帖子(使用 SAS 令牌上传 Blob 内容)谈论使用CloudBlockBlob,但是尚不清楚该类是否可以在 PowerShell 中使用。

为此,我创建了一个似乎有效的正则表达式,但很可能很脆弱,有更好的方法吗?

$SASUri = https://name.blob.core.windows.net/container?sv=2015-04-05&sr=b&sig=abc123&se=2017-03-07T12%3A58%3A52Z&sp=rw
$fileToUpload = 'Test.json'

$regex = [System.Text.RegularExpressions.Regex]::Match($SASUri, …
Run Code Online (Sandbox Code Playgroud)

powershell azure-powershell azure-blob-storage azure-sas

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

我如何告诉NuGet可执行使用什么MSBuild?

NuGet显然具有确定使用什么MSBuild可执行文件的逻辑。有没有办法覆盖这种行为?或者至少是一种告诉它使用x86 MSBuild而不是x64的方法?

MSBuild自动检测:使用来自'C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ amd64'的msbuild版本'14 .0'。

msbuild nuget

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