小编Joh*_*ohn的帖子

让MSBuild只构建需要构建的目标

长话短说,我们遇到了多种解决方案,它们之间有汇编参考.过去,我们必须以正确的顺序构建这些解决方案,以便正确构建我们的依赖项.

我正在尝试通过使用MSBuild任务来首先在依赖解决方案上恢复nuget,然后为您构建依赖项,即:

<Target Name="BeforeBuild" Condition="'$(Configuration)'=='Debug'">
    <Message Importance="high" Text="Kicking off internal dependency build for $(MSBuildProjectName) in Configuration=$(Configuration), Platform=$(Platform), OutDir=$(OutDir)" />
    <!--Build the dependencies-->
    <Message Importance="high" Text="Restoring MyDependencyProject NuGet External Packages..." />
    <Exec Command="..\..\bin\nuget.exe restore ..\MyProject\MyDependencyProject\MyDependencyProject.sln" />
    <Message Importance="high" Text="Building MyDependencyProject dependency..." />
    <MSBuild Projects="..\MyProject\MyDependencyProject\MyDependencyProject\MyDependencyProject.csproj" Targets="Build" Properties="Configuration=$(Configuration)" />
    <Message Importance="high" Text="Building MyDependencyProject2 dependency..." />
    <MSBuild Projects="..\MyProject\MyDependencyProject\MyDependencyProject\MyDependencyProject2.csproj" Targets="Build" Properties="Configuration=$(Configuration)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

这很棒!过去是我们必须打开和构建的7(!)单独解决方案,现在压缩为2(我们构建我们的C++ COM库,然后构建我们的C#库).

一个问题 - 虽然这更容易,但速度很慢.我一直在浏览MSBuild的诊断输出,似乎我设置它的方式是强制每次重建依赖项.如果我已经设置了Targets="Rebuild"我会期待这个,但我认为只有在项目过期(或者文件设置为)时Targets="Build"才会构建:

<CopyToOutputDirectory>Always</CopyToOutputDirectory> 
Run Code Online (Sandbox Code Playgroud)

在项目文件中).我在诊断输出中找不到任何消息来解释为什么MSBuild目标正在重建这些依赖项,即使尚未触及依赖项.

为什么MSBuild会完全重建尚未通过上述任务更改的依赖项目?

编辑 - 更多信息

我看到以下内容:

Target "IncrementalClean: …
Run Code Online (Sandbox Code Playgroud)

msbuild dependencies

9
推荐指数
0
解决办法
342
查看次数

正则表达式匹配所有除非?

假设我想要:

TESTGRID - NOT MATCH
testgrid - NOT MATCH
ACTIVEID - MATCH
activeID - MATCH
testRID - MATCH
Run Code Online (Sandbox Code Playgroud)

我试过了:

(?!([^GR]))ID*?\b (I really thought I had it with this one - Don't match ID if it is preceeded with GR, right?
(?!([^GRID]))ID*?\b
(?!([GRID]))ID*?\b
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。

我发誓我在正则表达式方面做得越来越好,尽管:)我已经成功地完成了最后 6 次尝试,而没有寻求 SO 的帮助,但我再次陷入困境:(

c# regex substring regex-lookarounds

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

Android/Java - 如何在单独的*.java文件中调用函数?

我导入了完整的包名/ java文件,如果我这样做<classname>.<method>,有时我可以访问它 - 有时候我会得到很多can't use a static in a non static话题.

我承认我是Java的新手,所以我需要做什么?先调用一个类实例,然后调用我的方法?我对此感到困惑,因为我想将所有'函数'放入一个FunctionsList.java文件中,并将所有主要的Activity(UI)放入MyActivity.java文件中.

例如:

<MyActivity.java>

import com.example.FunctionsList;

private class MyActivity extends Activity {
  FunctionsList.function();
}
Run Code Online (Sandbox Code Playgroud)

9/10次我得到静态/非静态错误.

如果我将所有函数都放入MyActivity.java中,我就没有问题!任何人都可以帮助我,我认为这是一个基本的Java新手问题?

java android

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

UI-Grid中的Angular UI-Select?

我觉得我的头撞在墙上.

有没有人在ui-grid中使用ui-select的例子?(3.0)

我正在努力利用ui-grid内部的ui-select作为cellTemplate,即:

{ field: "Job.JobTitle", displayName: "Job Title", enableCellEdit: true, editableCellTemplate: '<ui-select ng-model="job.selected" theme="select2" style="width:100%;"><ui-select-match placeholder="Select a job...">{{$select.selected.JobTitle}}</ui-select-match><ui-select-choices repeat="job in jobs | filter: $select.search"><div ng-bind-html="job.JobTitle | highlight: $select.search"></div></ui-select-choices></ui-select>' }
Run Code Online (Sandbox Code Playgroud)

任何人都有机会在ui-grid里面有一个ui-select的例子吗?

谢谢!

angularjs angular-ui ui-select

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

Linux文件描述符 - 获取当前重定向stdout文件?

我正在尝试获取当前的stdout重定向,并遇到一些麻烦.

我有一个总是使用stdout重定向运行的脚本,即:

myscript.sh > /tmp/output.log
Run Code Online (Sandbox Code Playgroud)

在myscript.sh中,我需要找出它输出的文件.

我正在尝试这个(不工作):

logfile=$(readlink -f /proc/self/fd/1)
Run Code Online (Sandbox Code Playgroud)

例如,那就是输出logfile = /tmp/sflq.r3f.我需要找到它会转到/tmp/output.log

这甚至可能吗?

如果重要,我正在使用korn shell

谢谢!

linux ksh file descriptor

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

如何在 [Code] 部分使用 Inno Setup 预处理器指令?

我觉得这一定是我所缺少的一些简单的东西 - 在 Inno Setup 中,如果我传入了指令变量,我如何在该[Code]部分中使用它?

假设我传入/DMYVAR=1Inno Setup 引擎。

在我的 .iss 文件中,我可以有类似的内容:

[Setup]
AppName=MyApp v{#MYVAR}
Run Code Online (Sandbox Code Playgroud)

在我的部分中,[Code]我希望能够像这样使用它:

[Setup]
AppName=MyApp v{#MYVAR}
Run Code Online (Sandbox Code Playgroud)

这不起作用:(

inno-setup pascalscript

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

如何将npm参数传递给dotnet publish?

长话短说,私有npm注册表,公司网络,不能从github下载。

我需要通过

--no-optional 
Run Code Online (Sandbox Code Playgroud)

npm install 
Run Code Online (Sandbox Code Playgroud)

dotnet publish
Run Code Online (Sandbox Code Playgroud)

作为一部分执行

Target "PublishRunWebpack: (TargetId:162)"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?MSDN文档@ https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-publish?tabs=netcore21超级无用。

如果重要的话,使用dotnet core 2.1 :)

谢谢!

msbuild npm .net-core npm-install visual-studio-2017

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

如何遍历泛型中的所有 DbSet?

(我在这里使用 EF6)假设我有一个抽象类:

public abstract class MyContext<T> : DbContext
Run Code Online (Sandbox Code Playgroud)

让我们使用它:

public class MyTestContext : MyContext<MyTestContext>
{
    public DbSet<Object1> Object1 { get; set; }
    public DbSet<Object2> Object2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我想在我的抽象类中迭代 MyTestContext 中的所有 DbSet。似乎这会起作用(这是在我的抽象类中的一个方法中):

var dbSetProperties = typeof(T).GetProperties().Where(p => p.PropertyType == typeof(DbSet<>));
Run Code Online (Sandbox Code Playgroud)

然而我得到“枚举没有结果”。

我在这里做错了什么?谢谢!

编辑注意 - 我不希望预先知道泛型类型参数 - 我实际上正在寻找确定每个 DbSet 中的类型。

c# iteration reflection entity-framework

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