Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
982967f0
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
982967f0
编写于
6月 27, 2018
作者:
T
Tomáš Matoušek
提交者:
GitHub
6月 27, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix IncludeNuGetResolvedAssets to handle packages in nuget fallback directory correctly (#28150)
上级
15578e46
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
67 deletion
+16
-67
build/Targets/VisualStudio.targets
build/Targets/VisualStudio.targets
+16
-7
src/Tools/BuildUtil/FindNuGetAssetsForVsix.cs
src/Tools/BuildUtil/FindNuGetAssetsForVsix.cs
+0
-60
未找到文件。
build/Targets/VisualStudio.targets
浏览文件 @
982967f0
...
...
@@ -65,16 +65,25 @@
by the NuGet build task. -->
<Target
Name=
"IncludeNuGetResolvedAssets"
DependsOnTargets=
"ResolvePackageDependenciesForBuild"
Condition=
"'@(NuGetPackageToIncludeInVsix)' != ''"
>
<FindNuGetAssetsForVsix
NuGetPackageRoot=
"$(NuGetPackageRoot)"
ReferenceCopyLocalPaths=
"@(ReferenceCopyLocalPaths)"
NuGetPackageToIncludeInVsix=
"@(NuGetPackageToIncludeInVsix)"
>
<Output
TaskParameter=
"NuGetAssetsToIncludeInVsix"
ItemName=
"NuGetAssetsToIncludeInVsix"
/>
</FindNuGetAssetsForVsix>
<!-- Calculate a list of packages ReferenceCopyLocalPaths originate from whose content should not be included in the VSIX -->
<ItemGroup>
<_ExcludedPackageId
Include=
"@(ReferenceCopyLocalPaths->'%(NuGetPackageId)')"
/>
<_ExcludedPackageId
Remove=
"@(NuGetPackageToIncludeInVsix)"
/>
</ItemGroup>
<!-- Build a list assets to include in the VSIX keyed by package id -->
<ItemGroup>
<_AssetsByPackageId
Include=
"@(ReferenceCopyLocalPaths->'%(NuGetPackageId)')"
>
<Path>
%(ReferenceCopyLocalPaths.Identity)
</Path>
</_AssetsByPackageId>
<_AssetsByPackageId
Remove=
"@(_ExcludedPackageId)"
/>
</ItemGroup>
<!-- Include the assets in the VSIX -->
<ItemGroup>
<VSIXCopyLocalReferenceSourceItem
Include=
"@(
NuGetAssetsToIncludeInVsix
)"
>
<VSIXCopyLocalReferenceSourceItem
Include=
"@(
_AssetsByPackageId->'%(Path)'
)"
>
<ForceIncludeInVsix>
true
</ForceIncludeInVsix>
<Private>
true
</Private>
</VSIXCopyLocalReferenceSourceItem>
...
...
src/Tools/BuildUtil/FindNuGetAssetsForVsix.cs
已删除
100644 → 0
浏览文件 @
15578e46
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Linq
;
using
Microsoft.Build.Framework
;
using
Microsoft.Build.Utilities
;
#pragma warning disable CA1819 // CA1819: Properties should not return arrays
namespace
Roslyn.MSBuild.Util
{
/// <summary>
/// This task will filter down the elements in the ReferenceLocalCopyPaths item group to
/// just the items in the set of NuGet packages we are interested in.
/// </summary>
public
sealed
class
FindNuGetAssetsForVsix
:
Task
{
[
Required
]
public
string
NuGetPackageRoot
{
get
;
set
;
}
[
Required
]
public
ITaskItem
[]
ReferenceCopyLocalPaths
{
get
;
set
;
}
[
Required
]
public
ITaskItem
[]
NuGetPackageToIncludeInVsix
{
get
;
set
;
}
[
Output
]
public
ITaskItem
[]
NuGetAssetsToIncludeInVsix
{
get
;
set
;
}
public
FindNuGetAssetsForVsix
()
{
}
public
override
bool
Execute
()
{
var
nugetDirs
=
new
List
<
string
>();
foreach
(
var
item
in
NuGetPackageToIncludeInVsix
)
{
var
nugetDir
=
NormalizePath
(
Path
.
Combine
(
NuGetPackageRoot
,
item
.
ItemSpec
));
nugetDirs
.
Add
(
nugetDir
);
}
var
assets
=
new
List
<
ITaskItem
>();
foreach
(
var
path
in
ReferenceCopyLocalPaths
)
{
var
itemPath
=
NormalizePath
(
path
.
ItemSpec
);
if
(
nugetDirs
.
Any
(
x
=>
itemPath
.
StartsWith
(
x
,
StringComparison
.
OrdinalIgnoreCase
)))
{
assets
.
Add
(
path
);
}
}
NuGetAssetsToIncludeInVsix
=
assets
.
ToArray
();
return
true
;
}
private
static
string
NormalizePath
(
string
path
)
=>
path
.
Replace
(
'/'
,
'\\'
).
TrimEnd
(
'\\'
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录