初始化

This commit is contained in:
2025-12-11 10:06:44 +08:00
commit f6cfed9a05
1203 changed files with 1461923 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,19 @@
EmptyLicensesLicx
-----------------
An easy approach to building apps that use third-party controls from companies
such as Telerik, DevExpress, Infragistics, and others, without having to
install these controls in every single build node, for the sake of compiling
the Properties\licenses.licx file.
A reference to the EmptyLicensesLicx.targets have been added to your project,
and is hooked into the build pipeline to make sure that the
Properties\licenses.licx file in this project is always empty before the
compiler tries to compile it.
i.e. Visual Studio will continue to modify the Properties\licenses.licx file as
you make changes to this project, but every time you compile this project, the
contents of the Properties\licenses.licx file will be removed and the file will
become empty, before the compiler runs.
Remember to ignore/exclude the Properties\licenses.licx file from your source
control system!

View File

@@ -0,0 +1,125 @@
<!--
//
// Copyright 2016-2021 C. Augusto Proiete & Contributors
//
// Licensed under the MIT (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://opensource.org/licenses/MIT
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
-->
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<EmptyLicensesLicxTaskFactory>CodeTaskFactory</EmptyLicensesLicxTaskFactory>
<EmptyLicensesLicxTaskFactory Condition="'$(MSBuildRuntimeType)' == 'Core'">RoslynCodeTaskFactory</EmptyLicensesLicxTaskFactory>
</PropertyGroup>
<UsingTask
TaskName="CreateEmptyLicenseLicxTask"
TaskFactory="$(EmptyLicensesLicxTaskFactory)"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<ParameterGroup>
<ProjectName ParameterType="System.String" Required="true" />
<ProjectDir ParameterType="System.String" Required="true" />
<Language ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Security" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try
{
string licxDirectoryPath;
switch (Language)
{
case "C#":
licxDirectoryPath = Path.Combine(ProjectDir, "Properties");
break;
case "VB":
licxDirectoryPath = Path.Combine(ProjectDir, "My Project");
break;
default:
throw new NotSupportedException(ProjectName + ": Language not supported: " + Language);
}
if (!Directory.Exists(licxDirectoryPath))
{
Log.LogMessage(MessageImportance.Normal, ProjectName + " -> " + licxDirectoryPath);
try
{
Directory.CreateDirectory(licxDirectoryPath);
}
catch(Exception dex)
{
if (dex is IOException
|| dex is UnauthorizedAccessException
|| dex is PathTooLongException
|| dex is DirectoryNotFoundException
|| dex is SecurityException)
{
Log.LogError(ProjectName + ": Error trying to create directory " + licxDirectoryPath + ". " + dex.Message);
}
else
{
throw;
}
}
}
var licxFilePath = Path.Combine(licxDirectoryPath, "licenses.licx");
var licxFileInfo = new FileInfo(licxFilePath);
if (licxFileInfo.Exists)
{
if (licxFileInfo.Length == 0)
{
return true;
}
if (licxFileInfo.IsReadOnly)
{
licxFileInfo.IsReadOnly = false;
}
}
Log.LogMessage(MessageImportance.High, ProjectName + " -> " + licxFilePath);
new FileStream(licxFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)
.Dispose();
Log.LogMessage(MessageImportance.Normal, ProjectName + ": Empty licenses.licx file created");
}
catch(Exception ex)
{
Log.LogError(ProjectName + ": Error creating licenses.licx file. " + ex.Message);
}
]]>
</Code>
</Task>
</UsingTask>
<PropertyGroup>
<CompileLicxFilesDependsOn>
$(CompileLicxFilesDependsOn);
CreateEmptyLicenseLicx;
</CompileLicxFilesDependsOn>
</PropertyGroup>
<Target Name="CreateEmptyLicenseLicx" BeforeTargets="CompileLicxFiles;BeforeCompile">
<CreateEmptyLicenseLicxTask ProjectName="$(ProjectName)" ProjectDir="$(ProjectDir)" Language="$(Language)" />
</Target>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB