小编Jon*_*han的帖子

如何仅从FILTER结果中获取某些列?

我正在使用FILTER从一个范围中提取行,并且只想获取某些列.例如,我按D过滤,但只想按相反的顺序排列B,C.我试着用QUERY:

=QUERY(filter(B:D,D:D>=2), "select C,B")- 错误:无法分析函数QUERY参数2的查询字符串:NO_COLUMNC
=QUERY(filter(B:D,D:D>=2), "select *")- 显示所有列,因此QUERY应该工作...

QUERY的结果怎么样FILTER?有没有其他方法来实现这一目标

google-sheets

21
推荐指数
4
解决办法
2万
查看次数

在元数据值上使用Item函数

背景:我管理一个相当大的解决方案.每隔一段时间,人们就会在解决方案中为项目添加DLL引用,他们应该添加项目引用.我想在这种情况下发出警告.我想通过在他们的HintPath*中找到'bin\debug'的所有引用来做到这一点.我知道引用是ItemGroup中的项目,元数据为"HintPath".

我期待这样的事情发挥作用:

<Warning Text="Reference %(Reference.Identity) should be a project reference. HintPath: %(Reference.HintPath)"
         Condition="%(Reference.HintPath).IndexOf('bin\debug') != -1"/>
Run Code Online (Sandbox Code Playgroud)

但是,似乎我不能像这样使用字符串函数IndexOf.我尝试了上述的许多排列,没有成功.

  • 编辑:我知道这个检查不是完全证明,但我只是想减少诚实的错误.

msbuild

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

使用Microsoft C++编译器而不安装Visual Studio

在我们的团队中,开发人员都拥有Visual Studio 2012,我们也使用TFS2012构建.出于空间和可管理性的原因,我们不会在我们的(许多)构建代理上安装Visual Studio.到目前为止,这对C#项目(csproj)起了作用.

现在我们要添加对C++项目(vcxproj)的支持.这些构建在开发人员的机器上,但不是构建代理 - 我们得到: X.vcxproj(31,3): error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

我想这是因为C++编译器和目标只与VS一起安装.

  1. 有没有办法只检查编译器和目标,并在common.targets中设置一些属性指向那里?
  2. 如果做不到这一点,我需要在每个构建代理上安装以支持C++编译的最小值是多少?我能找到的最少的是VS Express,这仍然是我不喜欢的.

c++ visual-studio visual-c++

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

如何编译.NET 4.5应用程序并引用.NET 4.5.2程序集?

我发现一个针对4.5的应用程序可以加载并运行一个针对4.5.2的程序集 - 但我无法编译这样的设置!

问题:如何编译.NET 4.5应用程序并引用.NET 4.5.2程序集?

实验细节:

  • MyLib.csproj - 目标4.5.2
  • MyApp.csproj - 目标4.5,具有对MyLib.csproj的项目引用

在Visual Studio或MSBuild中进行编译失败:

警告MSB3274:无法解析主要引用"(...)\ MyLib.dll",因为它是针对".NETFramework,Version = v4.5.2"框架构建的.这是比当前目标框架".NETFramework,Version = v4.5"更高的版本.
错误CS0246:找不到类型或命名空间名称"MyLib"(您是否缺少using指令或程序集引用?)

我试图单独编译MyLib并引用它的DLL,但得到了相同的编译错误.

但是,我设法让两者都运行:

  • 将两个项目都设置为4.5,编译,将结果复制到c:\ test\MyApp.exe
  • 将两个项目都设置为4.5.2,编译,将结果复制到c:\ test\MyLib.dll
  • 运行MyApp.exe - 运行正常!

背景:我正在准备将我们的大型NuGet管理的多项目从.NET 4.5过渡到4.5.2.该公告It is a highly compatible, in-place update to the .NET Framework 4, 4.5 and 4.5.1,所以,我想,如果我们升级我们的一些(的NuGet管理)裁判对4.5.2会发生什么,未升级的项目,试图使用它们.

.net .net-4.5.2

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

仅接受可选参数作为命名,而不是位置

我正在编写一个PowerShell脚本,它是.exe的包装器.我想要一些可选的脚本参数,并将其余的直接传递给exe.这是一个测试脚本:

param (
    [Parameter(Mandatory=$False)] [string] $a = "DefaultA"
   ,[parameter(ValueFromRemainingArguments=$true)][string[]]$ExeParams   # must be string[] - otherwise .exe invocation will quote
)

Write-Output ("a=" + ($a) + "  ExeParams:") $ExeParams
Run Code Online (Sandbox Code Playgroud)

如果我使用命名的param运行,一切都很棒:

C:\ > powershell /command \temp\a.ps1 -a A This-should-go-to-exeparams This-also
a=A  ExeParams:
This-should-go-to-exeparams
This-also
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试省略我的参数,则会为其分配第一个未命名的参数:

C:\ > powershell /command \temp\a.ps1 This-should-go-to-exeparams This-also
a=This-should-go-to-exeparams  ExeParams:
This-also
Run Code Online (Sandbox Code Playgroud)

我希望:

a=DefaultA ExeParams:
This-should-go-to-exeparams
This-also
Run Code Online (Sandbox Code Playgroud)

我尝试添加Position=0到param,但这会产生相同的结果.

有没有办法实现这个目标?
也许一个不同的参数方案?

parameters powershell optional-parameters

10
推荐指数
2
解决办法
7134
查看次数

如何授予Git'ForcePush'权限以将bfg-repo-cleaner结果推送到VSTS?

我公司的一个人是公司的VSTS项目的管理员,为我创建了一个回购,并授予我在master分支机构的所有权限.

现在我需要在我的仓库上运行BFG Repro-Cleaner.它在本地工作得很好,但是当我尝试使用git push镜像克隆时,我得到了:

! [remote rejected] user/<someone_else>/<branch> -> user/<someone_else>/<branch> (TF401027: You need the Git 'ForcePush' permission to perform this action. Details: identity <my identity>, scope 'branch'.)
! [remote rejected] refs/pull/<number>/merge -> refs/pull/<number>/merge (TF401027: You need the Git 'ForcePush' permission to perform this action. Details: identity <my identity>, scope 'branch'.)
error: failed to push some refs to 'https://<repo>'
Run Code Online (Sandbox Code Playgroud)

我应该要求管理员授予我哪些权限,以便我可以完成此操作?她将如何从VSTS Web UI中做到这一点?

git permissions azure-devops

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

如何使用 Python 收听 Windows 10 通知?

我的 Python 测试脚本使我们的产品引发 Windows 通知(“Toasts”)。我的 python 脚本如何验证通知是否确实发出?

我发现可以使用Windows.UI.Notifications.Management.UserNotificationListener( ref ) 在 C# 中创建通知侦听器,并且我发现我可以使用win10toast在 Python 中创建自己的通知- 但如何侦听其他应用程序的通知?

python notifications windows-10

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

MSBuild/m:4失败,因为它构建了两次相同的项目

我的团队有一个很大的解决方案(~500 csproj's).我们使用VS2012,并使用TFS Build构建,它使用MSBuild 4.目前我们按顺序构建,但我们想并行构建(使用msbuild /maxcpucount:4).但是,当我在我的4-proc机器上试用它时,我得到了一个奇怪的失败:

11:2>CSC : fatal error CS0042: Unexpected error creating debug information file 'C:\Common\obj\Debug\Common.PDB' -- 'C:\Common\obj\Debug\Common.pdb: The process cannot access the file because it is being used by another process. [C:\Common\Common.csproj]

查看日志,2个msbuild节点正在尝试构建相同的csproj,从而在写入一些输出时发生冲突:

10>Project "C:\Utils\Utils.csproj" (10) is building "C:\Common\Common.csproj" (11) on node 4 (default targets).
46:2>Project "C:\Objects\Objects.csproj" (46:2) is building "C:\Common\Common.csproj" (11:2) on node 1 (default targets).

为什么MSBuild会尝试两次构建同一个项目?

msbuild msbuild-4.0

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

AfterTargets失败不会使msbuild运行失败

在我的解决方案中,某些项目具有需要在最后运行的任务,例如将文件复制到各个位置.我们用以下方法实现AfterTargets="Build":

<Target Name="CopyStuff" AfterTargets="Build">
    <Copy SourceFiles="..." DestinationFolder="..." />
</Target>
Run Code Online (Sandbox Code Playgroud)

如果有效.但是,在构建解决方案(而不是单个项目!)时,如果复制失败,我们会收到红色构建警告,但msbuild(因此TFS构建)成功:

> msbuild /t:clean;build my.sln
(...)
(in red...) error MSB3021: Unable to copy file (...)

> echo %errorlevel%
0     <<<<<<< This means succeeded
Run Code Online (Sandbox Code Playgroud)

据我所知,这是因为msbuild认为只要主要的"Build"目标通过,一切都会过去.

我们的解决方法 - BeforeTargets="AfterBuild"将目标更改为,将目标置于Build目标中.但是,这需要了解"构建"目标的内容,并且可能不适用于其他项目类型.

题:

  1. 有没有办法让AfterTargets="Build"失败的解决方案构建失败?
  2. 如果没有,有没有办法自动验证人们没有添加AfterTargets="Build"到他们的项目中?

msbuild

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

设置分叉仓库的拉取请求默认分支

背景:我在 VSTS 托管的 git 存储库中有一个“原始”项目,并想创建一个类似的项目,所以我分叉了该存储库。我无意从 fork 合并到原始 repo - 它们将是 2 个独立的项目。分叉 repo 的主分支策略需要拉取请求,没有直接推送。

现在,每当我创建这样的拉取请求时,默认目标不是 f​​ork>master 而是 original>master。我总是手动将其更改为 fork>master,但是很烦人...

问题:

  1. 如何设置 fork 存储库,以便拉取请求默认为 fork>master 分支?
  2. 如何将分叉的 repo 转换为“普通”repo,“忘记”原始 repo?

git git-fork azure-devops

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