Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
12e0e82a
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,发现更多精彩内容 >>
提交
12e0e82a
编写于
7月 13, 2015
作者:
J
Jared Parsons
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
More MSBuildTask cleanup
上级
4c0cb3e5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
118 addition
and
128 deletion
+118
-128
src/Compilers/Core/MSBuildTask/Csc.cs
src/Compilers/Core/MSBuildTask/Csc.cs
+54
-59
src/Compilers/Core/MSBuildTask/Vbc.cs
src/Compilers/Core/MSBuildTask/Vbc.cs
+64
-69
未找到文件。
src/Compilers/Core/MSBuildTask/Csc.cs
浏览文件 @
12e0e82a
...
...
@@ -462,12 +462,7 @@ internal string GetDefineConstantsSwitch(string originalDefineConstants)
/// the return value will also be false.
/// </summary>
/// <owner>RGoel</owner>
private
bool
InitializeHostCompiler
(
// NOTE: For compat reasons this must remain ICscHostObject
// we can dynamically test for smarter interfaces later..
ICscHostObject
cscHostObject
)
private
bool
InitializeHostCompiler
(
ICscHostObject
cscHostObject
)
{
bool
success
;
this
.
HostCompilerSupportsAllParameters
=
this
.
UseHostCompilerIfAvailable
;
...
...
@@ -476,16 +471,16 @@ ICscHostObject cscHostObject
try
{
// Need to set these separately, because they don't require a CommitChanges to the C# compiler in the IDE.
param
=
"LinkResources"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetLinkResources
(
this
.
LinkResources
));
param
=
"References"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetReferences
(
this
.
References
));
param
=
"Resources"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetResources
(
this
.
Resources
));
param
=
"Sources"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetSources
(
this
.
Sources
));
CheckHostObjectSupport
(
param
=
nameof
(
LinkResources
),
cscHostObject
.
SetLinkResources
(
LinkResources
));
CheckHostObjectSupport
(
param
=
nameof
(
References
),
cscHostObject
.
SetReferences
(
References
));
CheckHostObjectSupport
(
param
=
nameof
(
Resources
),
cscHostObject
.
SetResources
(
Resources
));
CheckHostObjectSupport
(
param
=
nameof
(
Sources
),
cscHostObject
.
SetSources
(
Sources
));
// For host objects which support it, pass the list of analyzers.
IAnalyzerHostObject
analyzerHostObject
=
cscHostObject
as
IAnalyzerHostObject
;
if
(
analyzerHostObject
!=
null
)
{
param
=
"Analyzers"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetAnalyzers
(
this
.
Analyzers
));
CheckHostObjectSupport
(
param
=
nameof
(
Analyzers
),
analyzerHostObject
.
SetAnalyzers
(
Analyzers
));
}
}
catch
(
Exception
e
)
when
(!
Utilities
.
IsCriticalException
(
e
))
...
...
@@ -503,76 +498,76 @@ ICscHostObject cscHostObject
try
{
param
=
"BeginInitialization"
;
param
=
nameof
(
cscHostObject
.
BeginInitialization
)
;
cscHostObject
.
BeginInitialization
();
param
=
"AdditionalLibPaths"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetAdditionalLibPaths
(
this
.
AdditionalLibPaths
));
param
=
"AddModules"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetAddModules
(
this
.
AddModules
));
param
=
"AllowUnsafeBlocks"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetAllowUnsafeBlocks
(
this
.
AllowUnsafeBlocks
));
param
=
"BaseAddress"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetBaseAddress
(
this
.
BaseAddress
));
param
=
"CheckForOverflowUnderflow"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetCheckForOverflowUnderflow
(
this
.
CheckForOverflowUnderflow
));
param
=
"CodePage"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetCodePage
(
this
.
CodePage
));
CheckHostObjectSupport
(
param
=
nameof
(
AdditionalLibPaths
),
cscHostObject
.
SetAdditionalLibPaths
(
AdditionalLibPaths
));
CheckHostObjectSupport
(
param
=
nameof
(
AddModules
),
cscHostObject
.
SetAddModules
(
AddModules
));
CheckHostObjectSupport
(
param
=
nameof
(
AllowUnsafeBlocks
),
cscHostObject
.
SetAllowUnsafeBlocks
(
AllowUnsafeBlocks
));
CheckHostObjectSupport
(
param
=
nameof
(
BaseAddress
),
cscHostObject
.
SetBaseAddress
(
BaseAddress
));
CheckHostObjectSupport
(
param
=
nameof
(
CheckForOverflowUnderflow
),
cscHostObject
.
SetCheckForOverflowUnderflow
(
CheckForOverflowUnderflow
));
CheckHostObjectSupport
(
param
=
nameof
(
CodePage
),
cscHostObject
.
SetCodePage
(
CodePage
));
// These two -- EmitDebugInformation and DebugType -- must go together, with DebugType
// getting set last, because it is more specific.
param
=
"EmitDebugInformation"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetEmitDebugInformation
(
this
.
EmitDebugInformation
));
param
=
"DebugType"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetDebugType
(
this
.
DebugType
));
param
=
"DefineConstants"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetDefineConstants
(
this
.
GetDefineConstantsSwitch
(
this
.
DefineConstants
)));
param
=
"DelaySign"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetDelaySign
((
_store
[
"DelaySign"
]
!=
null
),
this
.
DelaySign
));
param
=
"DisabledWarnings"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetDisabledWarnings
(
this
.
DisabledWarnings
));
param
=
"DocumentationFile"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetDocumentationFile
(
this
.
DocumentationFile
));
param
=
"ErrorReport"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetErrorReport
(
this
.
ErrorReport
));
param
=
"FileAlignment"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetFileAlignment
(
this
.
FileAlignment
));
param
=
"GenerateFullPaths"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetGenerateFullPaths
(
this
.
GenerateFullPaths
));
param
=
"KeyContainer"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetKeyContainer
(
this
.
KeyContainer
));
param
=
"KeyFile"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetKeyFile
(
this
.
KeyFile
));
param
=
"LangVersion"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetLangVersion
(
this
.
LangVersion
));
param
=
"MainEntryPoint"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetMainEntryPoint
(
this
.
TargetType
,
this
.
MainEntryPoint
));
param
=
"ModuleAssemblyName"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetModuleAssemblyName
(
this
.
ModuleAssemblyName
));
param
=
"NoConfig"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetNoConfig
(
this
.
NoConfig
));
param
=
"NoStandardLib"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetNoStandardLib
(
this
.
NoStandardLib
));
param
=
"Optimize"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetOptimize
(
this
.
Optimize
));
param
=
"OutputAssembly"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetOutputAssembly
(
this
.
OutputAssembly
.
ItemSpec
));
param
=
"PdbFile"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetPdbFile
(
this
.
PdbFile
));
CheckHostObjectSupport
(
param
=
nameof
(
EmitDebugInformation
),
cscHostObject
.
SetEmitDebugInformation
(
EmitDebugInformation
));
CheckHostObjectSupport
(
param
=
nameof
(
DebugType
),
cscHostObject
.
SetDebugType
(
DebugType
));
CheckHostObjectSupport
(
param
=
nameof
(
DefineConstants
),
cscHostObject
.
SetDefineConstants
(
GetDefineConstantsSwitch
(
DefineConstants
)));
CheckHostObjectSupport
(
param
=
nameof
(
DelaySign
),
cscHostObject
.
SetDelaySign
((
_store
[
"DelaySign"
]
!=
null
),
DelaySign
));
CheckHostObjectSupport
(
param
=
nameof
(
DisabledWarnings
),
cscHostObject
.
SetDisabledWarnings
(
DisabledWarnings
));
CheckHostObjectSupport
(
param
=
nameof
(
DocumentationFile
),
cscHostObject
.
SetDocumentationFile
(
DocumentationFile
));
CheckHostObjectSupport
(
param
=
nameof
(
ErrorReport
),
cscHostObject
.
SetErrorReport
(
ErrorReport
));
CheckHostObjectSupport
(
param
=
nameof
(
FileAlignment
),
cscHostObject
.
SetFileAlignment
(
FileAlignment
));
CheckHostObjectSupport
(
param
=
nameof
(
GenerateFullPaths
),
cscHostObject
.
SetGenerateFullPaths
(
GenerateFullPaths
));
CheckHostObjectSupport
(
param
=
nameof
(
KeyContainer
),
cscHostObject
.
SetKeyContainer
(
KeyContainer
));
CheckHostObjectSupport
(
param
=
nameof
(
KeyFile
),
cscHostObject
.
SetKeyFile
(
KeyFile
));
CheckHostObjectSupport
(
param
=
nameof
(
LangVersion
),
cscHostObject
.
SetLangVersion
(
LangVersion
));
CheckHostObjectSupport
(
param
=
nameof
(
MainEntryPoint
),
cscHostObject
.
SetMainEntryPoint
(
TargetType
,
MainEntryPoint
));
CheckHostObjectSupport
(
param
=
nameof
(
ModuleAssemblyName
),
cscHostObject
.
SetModuleAssemblyName
(
ModuleAssemblyName
));
CheckHostObjectSupport
(
param
=
nameof
(
NoConfig
),
cscHostObject
.
SetNoConfig
(
NoConfig
));
CheckHostObjectSupport
(
param
=
nameof
(
NoStandardLib
),
cscHostObject
.
SetNoStandardLib
(
NoStandardLib
));
CheckHostObjectSupport
(
param
=
nameof
(
Optimize
),
cscHostObject
.
SetOptimize
(
Optimize
));
CheckHostObjectSupport
(
param
=
nameof
(
OutputAssembly
),
cscHostObject
.
SetOutputAssembly
(
OutputAssembly
?
.
ItemSpec
));
CheckHostObjectSupport
(
param
=
nameof
(
PdbFile
),
cscHostObject
.
SetPdbFile
(
PdbFile
));
// For host objects which support it, set platform with 32BitPreference, HighEntropyVA, and SubsystemVersion
ICscHostObject4
cscHostObject4
=
cscHostObject
as
ICscHostObject4
;
if
(
cscHostObject4
!=
null
)
{
param
=
"PlatformWith32BitPreference"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject4
.
SetPlatformWith32BitPreference
(
this
.
PlatformWith32BitPreference
));
param
=
"HighEntropyVA"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject4
.
SetHighEntropyVA
(
this
.
HighEntropyVA
));
param
=
"SubsystemVersion"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject4
.
SetSubsystemVersion
(
this
.
SubsystemVersion
));
CheckHostObjectSupport
(
param
=
nameof
(
PlatformWith32BitPreference
),
cscHostObject4
.
SetPlatformWith32BitPreference
(
PlatformWith32BitPreference
));
CheckHostObjectSupport
(
param
=
nameof
(
HighEntropyVA
),
cscHostObject4
.
SetHighEntropyVA
(
HighEntropyVA
));
CheckHostObjectSupport
(
param
=
nameof
(
SubsystemVersion
),
cscHostObject4
.
SetSubsystemVersion
(
SubsystemVersion
));
}
else
{
param
=
"Platform"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetPlatform
(
this
.
Platform
));
CheckHostObjectSupport
(
param
=
nameof
(
Platform
),
cscHostObject
.
SetPlatform
(
Platform
));
}
// For host objects which support it, set the analyzer ruleset and additional files.
IAnalyzerHostObject
analyzerHostObject
=
cscHostObject
as
IAnalyzerHostObject
;
if
(
analyzerHostObject
!=
null
)
{
param
=
"CodeAnalysisRuleSet"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetRuleSet
(
this
.
CodeAnalysisRuleSet
));
param
=
"AdditionalFiles"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetAdditionalFiles
(
this
.
AdditionalFiles
));
CheckHostObjectSupport
(
param
=
nameof
(
CodeAnalysisRuleSet
),
analyzerHostObject
.
SetRuleSet
(
CodeAnalysisRuleSet
));
CheckHostObjectSupport
(
param
=
nameof
(
AdditionalFiles
),
analyzerHostObject
.
SetAdditionalFiles
(
AdditionalFiles
));
}
ICscHostObject5
cscHostObject5
=
cscHostObject
as
ICscHostObject5
;
if
(
cscHostObject5
!=
null
)
{
param
=
"ErrorLog"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject5
.
SetErrorLog
(
this
.
ErrorLog
));
param
=
"ReportAnalyzer"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject5
.
SetReportAnalyzer
(
this
.
ReportAnalyzer
));
CheckHostObjectSupport
(
param
=
nameof
(
ErrorLog
),
cscHostObject5
.
SetErrorLog
(
ErrorLog
));
CheckHostObjectSupport
(
param
=
nameof
(
ReportAnalyzer
),
cscHostObject5
.
SetReportAnalyzer
(
ReportAnalyzer
));
}
param
=
"ResponseFiles"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetResponseFiles
(
this
.
ResponseFiles
));
param
=
"TargetType"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetTargetType
(
this
.
TargetType
));
param
=
"TreatWarningsAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetTreatWarningsAsErrors
(
this
.
TreatWarningsAsErrors
));
param
=
"WarningLevel"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetWarningLevel
(
this
.
WarningLevel
));
CheckHostObjectSupport
(
param
=
nameof
(
ResponseFiles
),
cscHostObject
.
SetResponseFiles
(
ResponseFiles
));
CheckHostObjectSupport
(
param
=
nameof
(
TargetType
),
cscHostObject
.
SetTargetType
(
TargetType
));
CheckHostObjectSupport
(
param
=
nameof
(
TreatWarningsAsErrors
),
cscHostObject
.
SetTreatWarningsAsErrors
(
TreatWarningsAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
WarningLevel
),
cscHostObject
.
SetWarningLevel
(
WarningLevel
));
// This must come after TreatWarningsAsErrors.
param
=
"WarningsAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetWarningsAsErrors
(
this
.
WarningsAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
WarningsAsErrors
),
cscHostObject
.
SetWarningsAsErrors
(
WarningsAsErrors
));
// This must come after TreatWarningsAsErrors.
param
=
"WarningsNotAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetWarningsNotAsErrors
(
this
.
WarningsNotAsErrors
));
param
=
"Win32Icon"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetWin32Icon
(
this
.
Win32Icon
));
CheckHostObjectSupport
(
param
=
nameof
(
WarningsNotAsErrors
),
cscHostObject
.
SetWarningsNotAsErrors
(
WarningsNotAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Icon
),
cscHostObject
.
SetWin32Icon
(
Win32Icon
));
// In order to maintain compatibility with previous host compilers, we must
// light-up for ICscHostObject2/ICscHostObject3
...
...
@@ -580,7 +575,7 @@ ICscHostObject cscHostObject
if
(
cscHostObject
is
ICscHostObject2
)
{
ICscHostObject2
cscHostObject2
=
(
ICscHostObject2
)
cscHostObject
;
param
=
"Win32Manifest"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject2
.
SetWin32Manifest
(
this
.
GetWin32ManifestSwitch
(
this
.
NoWin32Manifest
,
this
.
Win32Manifest
)));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Manifest
),
cscHostObject2
.
SetWin32Manifest
(
GetWin32ManifestSwitch
(
NoWin32Manifest
,
Win32Manifest
)));
}
else
{
...
...
@@ -588,17 +583,17 @@ ICscHostObject cscHostObject
// then we need to state that we are falling back to the command line compiler
if
(!
String
.
IsNullOrEmpty
(
Win32Manifest
))
{
this
.
CheckHostObjectSupport
(
"Win32Manifest"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
Win32Manifest
),
resultFromHostObjectSetOperation
:
false
);
}
}
// This must come after Win32Manifest
param
=
"Win32Resource"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject
.
SetWin32Resource
(
this
.
Win32Resource
));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Resource
),
cscHostObject
.
SetWin32Resource
(
Win32Resource
));
if
(
cscHostObject
is
ICscHostObject3
)
{
ICscHostObject3
cscHostObject3
=
(
ICscHostObject3
)
cscHostObject
;
param
=
"ApplicationConfiguration"
;
this
.
CheckHostObjectSupport
(
param
,
cscHostObject3
.
SetApplicationConfiguration
(
this
.
ApplicationConfiguration
));
CheckHostObjectSupport
(
param
=
nameof
(
ApplicationConfiguration
),
cscHostObject3
.
SetApplicationConfiguration
(
ApplicationConfiguration
));
}
else
{
...
...
@@ -606,7 +601,7 @@ ICscHostObject cscHostObject
// then we need to state that we are falling back to the command line compiler
if
(!
String
.
IsNullOrEmpty
(
ApplicationConfiguration
))
{
this
.
CheckHostObjectSupport
(
"ApplicationConfiguration"
,
false
);
CheckHostObjectSupport
(
nameof
(
ApplicationConfiguration
),
resultFromHostObjectSetOperation
:
false
);
}
}
...
...
@@ -617,7 +612,7 @@ ICscHostObject cscHostObject
// Other options are not supported since in-proc compiler always uses current locale.
if
(!
String
.
IsNullOrEmpty
(
PreferredUILang
)
&&
!
String
.
Equals
(
PreferredUILang
,
System
.
Globalization
.
CultureInfo
.
CurrentUICulture
.
Name
,
StringComparison
.
OrdinalIgnoreCase
))
{
this
.
CheckHostObjectSupport
(
"PreferredUILang"
,
false
);
CheckHostObjectSupport
(
nameof
(
PreferredUILang
),
resultFromHostObjectSetOperation
:
false
);
}
}
catch
(
Exception
e
)
when
(!
Utilities
.
IsCriticalException
(
e
))
...
...
src/Compilers/Core/MSBuildTask/Vbc.cs
浏览文件 @
12e0e82a
...
...
@@ -813,104 +813,99 @@ string originalDefineConstants
/// the return value will also be false.
/// </summary>
/// <owner>RGoel</owner>
private
bool
InitializeHostCompiler
(
// NOTE: For compat reasons this must remain IVbcHostObject
// we can dynamically test for smarter interfaces later..
IVbcHostObject
vbcHostObject
)
private
bool
InitializeHostCompiler
(
IVbcHostObject
vbcHostObject
)
{
this
.
HostCompilerSupportsAllParameters
=
this
.
UseHostCompilerIfAvailable
;
string
param
=
"Unknown"
;
try
{
param
=
"BeginInitialization"
;
param
=
nameof
(
vbcHostObject
.
BeginInitialization
)
;
vbcHostObject
.
BeginInitialization
();
param
=
"AdditionalLibPaths"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetAdditionalLibPaths
(
this
.
AdditionalLibPaths
));
param
=
"AddModules"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetAddModules
(
this
.
AddModules
));
CheckHostObjectSupport
(
param
=
nameof
(
AdditionalLibPaths
),
vbcHostObject
.
SetAdditionalLibPaths
(
AdditionalLibPaths
));
CheckHostObjectSupport
(
param
=
nameof
(
AddModules
),
vbcHostObject
.
SetAddModules
(
AddModules
));
// For host objects which support them, set the analyzers, ruleset and additional files.
IAnalyzerHostObject
analyzerHostObject
=
vbcHostObject
as
IAnalyzerHostObject
;
if
(
analyzerHostObject
!=
null
)
{
param
=
"Analyzers"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetAnalyzers
(
this
.
Analyzers
));
param
=
"CodeAnalysisRuleSet"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetRuleSet
(
this
.
CodeAnalysisRuleSet
));
param
=
"AdditionalFiles"
;
this
.
CheckHostObjectSupport
(
param
,
analyzerHostObject
.
SetAdditionalFiles
(
this
.
AdditionalFiles
));
CheckHostObjectSupport
(
param
=
nameof
(
Analyzers
),
analyzerHostObject
.
SetAnalyzers
(
Analyzers
));
CheckHostObjectSupport
(
param
=
nameof
(
CodeAnalysisRuleSet
),
analyzerHostObject
.
SetRuleSet
(
CodeAnalysisRuleSet
));
CheckHostObjectSupport
(
param
=
nameof
(
AdditionalFiles
),
analyzerHostObject
.
SetAdditionalFiles
(
AdditionalFiles
));
}
param
=
"BaseAddress"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetBaseAddress
(
this
.
TargetType
,
this
.
GetBaseAddressInHex
()));
param
=
"CodePage"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetCodePage
(
this
.
CodePage
));
param
=
"DebugType"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetDebugType
(
this
.
EmitDebugInformation
,
this
.
DebugType
));
param
=
"DefineConstants"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetDefineConstants
(
this
.
DefineConstants
));
param
=
"DelaySign"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetDelaySign
(
this
.
DelaySign
));
param
=
"DocumentationFile"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetDocumentationFile
(
this
.
DocumentationFile
));
param
=
"FileAlignment"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetFileAlignment
(
this
.
FileAlignment
));
param
=
"GenerateDocumentation"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetGenerateDocumentation
(
this
.
GenerateDocumentation
));
param
=
"Imports"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetImports
(
this
.
Imports
));
param
=
"KeyContainer"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetKeyContainer
(
this
.
KeyContainer
));
param
=
"KeyFile"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetKeyFile
(
this
.
KeyFile
));
param
=
"LinkResources"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetLinkResources
(
this
.
LinkResources
));
param
=
"MainEntryPoint"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetMainEntryPoint
(
this
.
MainEntryPoint
));
param
=
"NoConfig"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetNoConfig
(
this
.
NoConfig
));
param
=
"NoStandardLib"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetNoStandardLib
(
this
.
NoStandardLib
));
param
=
"NoWarnings"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetNoWarnings
(
this
.
NoWarnings
));
param
=
"Optimize"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOptimize
(
this
.
Optimize
));
param
=
"OptionCompare"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOptionCompare
(
this
.
OptionCompare
));
param
=
"OptionExplicit"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOptionExplicit
(
this
.
OptionExplicit
));
param
=
"OptionStrict"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOptionStrict
(
this
.
OptionStrict
));
param
=
"OptionStrictType"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOptionStrictType
(
this
.
OptionStrictType
));
param
=
"OutputAssembly"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetOutputAssembly
(
this
.
OutputAssembly
.
ItemSpec
));
CheckHostObjectSupport
(
param
=
nameof
(
BaseAddress
),
vbcHostObject
.
SetBaseAddress
(
TargetType
,
GetBaseAddressInHex
()));
CheckHostObjectSupport
(
param
=
nameof
(
CodePage
),
vbcHostObject
.
SetCodePage
(
CodePage
));
CheckHostObjectSupport
(
param
=
nameof
(
DebugType
),
vbcHostObject
.
SetDebugType
(
EmitDebugInformation
,
DebugType
));
CheckHostObjectSupport
(
param
=
nameof
(
DefineConstants
),
vbcHostObject
.
SetDefineConstants
(
DefineConstants
));
CheckHostObjectSupport
(
param
=
nameof
(
DelaySign
),
vbcHostObject
.
SetDelaySign
(
DelaySign
));
CheckHostObjectSupport
(
param
=
nameof
(
DocumentationFile
),
vbcHostObject
.
SetDocumentationFile
(
DocumentationFile
));
CheckHostObjectSupport
(
param
=
nameof
(
FileAlignment
),
vbcHostObject
.
SetFileAlignment
(
FileAlignment
));
CheckHostObjectSupport
(
param
=
nameof
(
GenerateDocumentation
),
vbcHostObject
.
SetGenerateDocumentation
(
GenerateDocumentation
));
CheckHostObjectSupport
(
param
=
nameof
(
Imports
),
vbcHostObject
.
SetImports
(
Imports
));
CheckHostObjectSupport
(
param
=
nameof
(
KeyContainer
),
vbcHostObject
.
SetKeyContainer
(
KeyContainer
));
CheckHostObjectSupport
(
param
=
nameof
(
KeyFile
),
vbcHostObject
.
SetKeyFile
(
KeyFile
));
CheckHostObjectSupport
(
param
=
nameof
(
LinkResources
),
vbcHostObject
.
SetLinkResources
(
LinkResources
));
CheckHostObjectSupport
(
param
=
nameof
(
MainEntryPoint
),
vbcHostObject
.
SetMainEntryPoint
(
MainEntryPoint
));
CheckHostObjectSupport
(
param
=
nameof
(
NoConfig
),
vbcHostObject
.
SetNoConfig
(
NoConfig
));
CheckHostObjectSupport
(
param
=
nameof
(
NoStandardLib
),
vbcHostObject
.
SetNoStandardLib
(
NoStandardLib
));
CheckHostObjectSupport
(
param
=
nameof
(
NoWarnings
),
vbcHostObject
.
SetNoWarnings
(
NoWarnings
));
CheckHostObjectSupport
(
param
=
nameof
(
Optimize
),
vbcHostObject
.
SetOptimize
(
Optimize
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionCompare
),
vbcHostObject
.
SetOptionCompare
(
OptionCompare
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionExplicit
),
vbcHostObject
.
SetOptionExplicit
(
OptionExplicit
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionStrict
),
vbcHostObject
.
SetOptionStrict
(
OptionStrict
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionStrictType
),
vbcHostObject
.
SetOptionStrictType
(
OptionStrictType
));
CheckHostObjectSupport
(
param
=
nameof
(
OutputAssembly
),
vbcHostObject
.
SetOutputAssembly
(
OutputAssembly
?
.
ItemSpec
));
// For host objects which support them, set platform with 32BitPreference, HighEntropyVA, and SubsystemVersion
IVbcHostObject5
vbcHostObject5
=
vbcHostObject
as
IVbcHostObject5
;
if
(
vbcHostObject5
!=
null
)
{
param
=
"PlatformWith32BitPreference"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject5
.
SetPlatformWith32BitPreference
(
this
.
PlatformWith32BitPreference
));
param
=
"HighEntropyVA"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject5
.
SetHighEntropyVA
(
this
.
HighEntropyVA
));
param
=
"SubsystemVersion"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject5
.
SetSubsystemVersion
(
this
.
SubsystemVersion
));
CheckHostObjectSupport
(
param
=
nameof
(
PlatformWith32BitPreference
),
vbcHostObject5
.
SetPlatformWith32BitPreference
(
PlatformWith32BitPreference
));
CheckHostObjectSupport
(
param
=
nameof
(
HighEntropyVA
),
vbcHostObject5
.
SetHighEntropyVA
(
HighEntropyVA
));
CheckHostObjectSupport
(
param
=
nameof
(
SubsystemVersion
),
vbcHostObject5
.
SetSubsystemVersion
(
SubsystemVersion
));
}
else
{
param
=
"Platform"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetPlatform
(
this
.
Platform
));
CheckHostObjectSupport
(
param
=
nameof
(
Platform
),
vbcHostObject
.
SetPlatform
(
Platform
));
}
IVbcHostObject6
vbcHostObject6
=
vbcHostObject
as
IVbcHostObject6
;
if
(
vbcHostObject6
!=
null
)
{
param
=
"ErrorLog"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject6
.
SetErrorLog
(
this
.
ErrorLog
));
param
=
"ReportAnalyzer"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject6
.
SetReportAnalyzer
(
this
.
ReportAnalyzer
));
CheckHostObjectSupport
(
param
=
nameof
(
ErrorLog
),
vbcHostObject6
.
SetErrorLog
(
ErrorLog
));
CheckHostObjectSupport
(
param
=
nameof
(
ReportAnalyzer
),
vbcHostObject6
.
SetReportAnalyzer
(
ReportAnalyzer
));
}
param
=
"References"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetReferences
(
this
.
References
));
param
=
"RemoveIntegerChecks"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetRemoveIntegerChecks
(
this
.
RemoveIntegerChecks
));
param
=
"Resources"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetResources
(
this
.
Resources
));
param
=
"ResponseFiles"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetResponseFiles
(
this
.
ResponseFiles
));
param
=
"RootNamespace"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetRootNamespace
(
this
.
RootNamespace
));
param
=
"SdkPath"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetSdkPath
(
this
.
SdkPath
));
param
=
"Sources"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetSources
(
this
.
Sources
));
param
=
"TargetCompactFramework"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetTargetCompactFramework
(
this
.
TargetCompactFramework
));
param
=
"TargetType"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetTargetType
(
this
.
TargetType
));
param
=
"TreatWarningsAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetTreatWarningsAsErrors
(
this
.
TreatWarningsAsErrors
));
param
=
"WarningsAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetWarningsAsErrors
(
this
.
WarningsAsErrors
));
param
=
"WarningsNotAsErrors"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetWarningsNotAsErrors
(
this
.
WarningsNotAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
References
),
vbcHostObject
.
SetReferences
(
References
));
CheckHostObjectSupport
(
param
=
nameof
(
RemoveIntegerChecks
),
vbcHostObject
.
SetRemoveIntegerChecks
(
RemoveIntegerChecks
));
CheckHostObjectSupport
(
param
=
nameof
(
Resources
),
vbcHostObject
.
SetResources
(
Resources
));
CheckHostObjectSupport
(
param
=
nameof
(
ResponseFiles
),
vbcHostObject
.
SetResponseFiles
(
ResponseFiles
));
CheckHostObjectSupport
(
param
=
nameof
(
RootNamespace
),
vbcHostObject
.
SetRootNamespace
(
RootNamespace
));
CheckHostObjectSupport
(
param
=
nameof
(
SdkPath
),
vbcHostObject
.
SetSdkPath
(
SdkPath
));
CheckHostObjectSupport
(
param
=
nameof
(
Sources
),
vbcHostObject
.
SetSources
(
Sources
));
CheckHostObjectSupport
(
param
=
nameof
(
TargetCompactFramework
),
vbcHostObject
.
SetTargetCompactFramework
(
TargetCompactFramework
));
CheckHostObjectSupport
(
param
=
nameof
(
TargetType
),
vbcHostObject
.
SetTargetType
(
TargetType
));
CheckHostObjectSupport
(
param
=
nameof
(
TreatWarningsAsErrors
),
vbcHostObject
.
SetTreatWarningsAsErrors
(
TreatWarningsAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
WarningsAsErrors
),
vbcHostObject
.
SetWarningsAsErrors
(
WarningsAsErrors
));
CheckHostObjectSupport
(
param
=
nameof
(
WarningsNotAsErrors
),
vbcHostObject
.
SetWarningsNotAsErrors
(
WarningsNotAsErrors
));
// DisabledWarnings needs to come after WarningsAsErrors and WarningsNotAsErrors, because
// of the way the host object works, and the fact that DisabledWarnings trump Warnings[Not]AsErrors.
param
=
"DisabledWarnings"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetDisabledWarnings
(
this
.
DisabledWarnings
));
param
=
"Win32Icon"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetWin32Icon
(
this
.
Win32Icon
));
param
=
"Win32Resource"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject
.
SetWin32Resource
(
this
.
Win32Resource
));
CheckHostObjectSupport
(
param
=
nameof
(
DisabledWarnings
),
vbcHostObject
.
SetDisabledWarnings
(
DisabledWarnings
));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Icon
),
vbcHostObject
.
SetWin32Icon
(
Win32Icon
));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Resource
),
vbcHostObject
.
SetWin32Resource
(
Win32Resource
));
// In order to maintain compatibility with previous host compilers, we must
// light-up for IVbcHostObject2
if
(
vbcHostObject
is
IVbcHostObject2
)
{
IVbcHostObject2
vbcHostObject2
=
(
IVbcHostObject2
)
vbcHostObject
;
param
=
"ModuleAssemblyName"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject2
.
SetModuleAssemblyName
(
this
.
ModuleAssemblyName
));
param
=
"OptionInfer"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject2
.
SetOptionInfer
(
this
.
OptionInfer
));
param
=
"Win32Manifest"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject2
.
SetWin32Manifest
(
this
.
GetWin32ManifestSwitch
(
this
.
NoWin32Manifest
,
this
.
Win32Manifest
)));
CheckHostObjectSupport
(
param
=
nameof
(
ModuleAssemblyName
),
vbcHostObject2
.
SetModuleAssemblyName
(
ModuleAssemblyName
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionInfer
),
vbcHostObject2
.
SetOptionInfer
(
OptionInfer
));
CheckHostObjectSupport
(
param
=
nameof
(
Win32Manifest
),
vbcHostObject2
.
SetWin32Manifest
(
GetWin32ManifestSwitch
(
NoWin32Manifest
,
Win32Manifest
)));
// initialize option Infer
CheckHostObjectSupport
(
"OptionInfer"
,
vbcHostObject2
.
SetOptionInfer
(
this
.
OptionInfer
));
CheckHostObjectSupport
(
param
=
nameof
(
OptionInfer
),
vbcHostObject2
.
SetOptionInfer
(
OptionInfer
));
}
else
{
...
...
@@ -918,17 +913,17 @@ IVbcHostObject vbcHostObject
// then we need to state that we are falling back to the command line compiler
if
(!
String
.
IsNullOrEmpty
(
ModuleAssemblyName
))
{
CheckHostObjectSupport
(
"ModuleAssemblyName"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
ModuleAssemblyName
),
resultFromHostObjectSetOperation
:
false
);
}
if
(
_store
.
ContainsKey
(
"OptionInfer"
))
if
(
_store
.
ContainsKey
(
nameof
(
OptionInfer
)
))
{
CheckHostObjectSupport
(
"OptionInfer"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
OptionInfer
),
resultFromHostObjectSetOperation
:
false
);
}
if
(!
String
.
IsNullOrEmpty
(
Win32Manifest
))
{
CheckHostObjectSupport
(
"Win32Manifest"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
Win32Manifest
),
resultFromHostObjectSetOperation
:
false
);
}
}
...
...
@@ -936,24 +931,24 @@ IVbcHostObject vbcHostObject
if
(
vbcHostObject
is
IVbcHostObject3
)
{
IVbcHostObject3
vbcHostObject3
=
(
IVbcHostObject3
)
vbcHostObject
;
param
=
"LangVersion"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject3
.
SetLanguageVersion
(
this
.
LangVersion
));
CheckHostObjectSupport
(
param
=
nameof
(
LangVersion
),
vbcHostObject3
.
SetLanguageVersion
(
LangVersion
));
}
else
if
(!
String
.
IsNullOrEmpty
(
this
.
LangVersion
)
&&
!
this
.
UsedCommandLineTool
)
else
if
(!
String
.
IsNullOrEmpty
(
LangVersion
)
&&
!
UsedCommandLineTool
)
{
CheckHostObjectSupport
(
"LangVersion"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
LangVersion
),
resultFromHostObjectSetOperation
:
false
);
}
if
(
vbcHostObject
is
IVbcHostObject4
)
{
IVbcHostObject4
vbcHostObject4
=
(
IVbcHostObject4
)
vbcHostObject
;
param
=
"VBRuntime"
;
this
.
CheckHostObjectSupport
(
param
,
vbcHostObject4
.
SetVBRuntime
(
this
.
VBRuntime
));
CheckHostObjectSupport
(
param
=
nameof
(
VBRuntime
),
vbcHostObject4
.
SetVBRuntime
(
VBRuntime
));
}
// Support for NoVBRuntimeReference was added to this task after IVbcHostObject was frozen. That doesn't matter much because the host
// compiler doesn't support it, and almost nobody uses it anyway. But if someone has set it, we need to hard code falling back to
// the command line compiler here.
if
(
NoVBRuntimeReference
)
{
CheckHostObjectSupport
(
"NoVBRuntimeReference"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
NoVBRuntimeReference
),
resultFromHostObjectSetOperation
:
false
);
}
// In general, we don't support preferreduilang with the in-proc compiler. It will always use the same locale as the
...
...
@@ -963,7 +958,7 @@ IVbcHostObject vbcHostObject
// Explicitly specified name of current locale is also supported, since it is effectively a no-op.
if
(!
String
.
IsNullOrEmpty
(
PreferredUILang
)
&&
!
String
.
Equals
(
PreferredUILang
,
System
.
Globalization
.
CultureInfo
.
CurrentUICulture
.
Name
,
StringComparison
.
OrdinalIgnoreCase
))
{
CheckHostObjectSupport
(
"PreferredUILang"
,
false
);
CheckHostObjectSupport
(
param
=
nameof
(
PreferredUILang
),
resultFromHostObjectSetOperation
:
false
);
}
}
catch
(
Exception
e
)
when
(!
Utilities
.
IsCriticalException
(
e
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录