Merge branch 'rel/1.0.0' into dev/jgoshi/handleDeprecatedPJ
This commit is contained in:
commit
2cc4f3f166
6 changed files with 65 additions and 3 deletions
|
@ -13,7 +13,7 @@ The current official release of the csproj-enabled CLI tools is **CLI Preview 4*
|
|||
There are a couple of things to keep in mind:
|
||||
|
||||
* Preview 4 CLI bits are still **in development** so some rough edges are to be expected.
|
||||
* Preview 4 bits **do not support** project.json so you will have to either keep Preview 2 tools around or migrate your project. You can find more information on this using the [project.json to csproj instructions](https://github.com/dotnet/cli/blob/rel/1.0.0/Documentation/ProjectJsonToCSProj.md).
|
||||
* Preview 4 bits **do not support** project.json so you will have to either keep Preview 2 tools around or migrate your project or add a global.json file to your project to target preview2. You can find more information on this using the [project.json to csproj instructions](https://github.com/dotnet/cli/blob/rel/1.0.0/Documentation/ProjectJsonToCSProj.md).
|
||||
* Preview 4 refers to the **CLI tools only** and does not cover Visual Studio, VS Code or Visual Studio for Mac.
|
||||
* We welcome any and all issues that relate to MSBuild-based tools, so feel free to try them out and leave comments and file any bugs/problems.
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
using System;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello World!");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"version": "1.0.0-*",
|
||||
"buildOptions": {
|
||||
"debugType": "portable",
|
||||
"emitEntryPoint": true,
|
||||
"compile": {
|
||||
"include": [
|
||||
"**/*.cs"
|
||||
]
|
||||
}
|
||||
},
|
||||
"dependencies": {},
|
||||
"frameworks": {
|
||||
"netcoreapp1.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"type": "platform",
|
||||
"version": "1.0.1"
|
||||
}
|
||||
},
|
||||
"imports": "dnxcore50"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -110,10 +110,15 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
|||
compilerOptions => projectFolderName,
|
||||
compilerOptions => compilerOptions.OutputName != null);
|
||||
|
||||
private string[] _compilePatternsToExclude = new string[] {
|
||||
"**/*.cs"
|
||||
};
|
||||
|
||||
private IncludeContextTransform CompileFilesTransform =>
|
||||
new IncludeContextTransform(
|
||||
"Compile",
|
||||
transformMappings: false,
|
||||
patternsToExclude: _compilePatternsToExclude,
|
||||
condition: ic => ic != null,
|
||||
emitBuiltInIncludes: false);
|
||||
|
||||
|
|
|
@ -25,6 +25,11 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms
|
|||
&& includeContext.IncludeFiles != null
|
||||
&& includeContext.IncludeFiles.Count > 0);
|
||||
|
||||
private bool IsPatternExcluded(string pattern)
|
||||
{
|
||||
return _patternsToExclude.Contains(pattern.Replace('\\', '/'));
|
||||
}
|
||||
|
||||
protected virtual Func<string, AddItemTransform<IncludeContext>> IncludeExcludeTransformGetter =>
|
||||
(itemName) => new AddItemTransform<IncludeContext>(
|
||||
itemName,
|
||||
|
@ -36,6 +41,8 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms
|
|||
fullIncludeSet = fullIncludeSet.Union(includeContext.BuiltInsInclude.OrEmptyIfNull());
|
||||
}
|
||||
|
||||
fullIncludeSet = fullIncludeSet.Where((pattern) => !IsPatternExcluded(pattern));
|
||||
|
||||
return FormatGlobPatternsForMsbuild(fullIncludeSet, includeContext.SourceBasePath);
|
||||
},
|
||||
includeContext =>
|
||||
|
@ -50,7 +57,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms
|
|||
{
|
||||
return includeContext != null &&
|
||||
(
|
||||
(includeContext.IncludePatterns != null && includeContext.IncludePatterns.Count > 0)
|
||||
(includeContext.IncludePatterns != null && includeContext.IncludePatterns.Where((pattern) => !IsPatternExcluded(pattern)).Count() > 0)
|
||||
||
|
||||
(_emitBuiltInIncludes &&
|
||||
includeContext.BuiltInsInclude != null &&
|
||||
|
@ -68,6 +75,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms
|
|||
|
||||
private readonly string _itemName;
|
||||
private bool _transformMappings;
|
||||
private string[] _patternsToExclude;
|
||||
private bool _emitBuiltInIncludes;
|
||||
private readonly List<ItemMetadataValue<IncludeContext>> _metadata = new List<ItemMetadataValue<IncludeContext>>();
|
||||
|
||||
|
@ -75,11 +83,13 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Transforms
|
|||
string itemName,
|
||||
bool transformMappings = true,
|
||||
Func<IncludeContext, bool> condition = null,
|
||||
bool emitBuiltInIncludes = true) : base(condition)
|
||||
bool emitBuiltInIncludes = true,
|
||||
string[] patternsToExclude = null) : base(condition)
|
||||
{
|
||||
_itemName = itemName;
|
||||
_transformMappings = transformMappings;
|
||||
_emitBuiltInIncludes = emitBuiltInIncludes;
|
||||
_patternsToExclude = patternsToExclude ?? Array.Empty<string>();
|
||||
|
||||
_mappingsToTransfrom = (addItemTransform, targetPath) =>
|
||||
{
|
||||
|
|
|
@ -640,6 +640,20 @@ namespace Microsoft.DotNet.Migration.Tests
|
|||
Restore(projectDirectory, projectName);
|
||||
BuildMSBuild(projectDirectory, projectName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ItMigratesAndBuildsAppWithExplicitIncludeGlob()
|
||||
{
|
||||
const string projectName = "TestAppWithExplicitIncludeGlob";
|
||||
var projectDirectory = TestAssets.Get(projectName)
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.Root;
|
||||
|
||||
MigrateProject(projectDirectory.FullName);
|
||||
Restore(projectDirectory, projectName);
|
||||
BuildMSBuild(projectDirectory, projectName);
|
||||
}
|
||||
|
||||
private void VerifyAutoInjectedDesktopReferences(DirectoryInfo projectDirectory, string projectName, bool shouldBePresent)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue