本文整理汇总了C#中Saltarelle.Compiler.Driver.CompilerOptions类的典型用法代码示例。如果您正苦于以下问题:C# CompilerOptions类的具体用法?C# CompilerOptions怎么用?C# CompilerOptions使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CompilerOptions类属于Saltarelle.Compiler.Driver命名空间,在下文中一共展示了CompilerOptions类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: CanCompileAsyncTaskGenericMethod
public void CanCompileAsyncTaskGenericMethod()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File1.cs"), @"
using System.Threading.Tasks;
public class C1 {
public async Task<int> M() {
var t = new Task(() => {});
await t;
return 0;
}
}");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File1.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(File.Exists(Path.GetFullPath("Test.dll")), Is.True, "Assembly should be written");
Assert.That(File.Exists(Path.GetFullPath("Test.js")), Is.True, "Script should be written");
}, "File1.cs", "Test.dll", "Test.js");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:27,代码来源:DriverTests.cs
示例2: ChangingTheWarningLevelWorks
public void ChangingTheWarningLevelWorks()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"public class C1 { public void M() { var x = 0l; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js"),
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(er.AllMessages.Select(m => m.Code).ToList(), Is.EquivalentTo(new[] { 219, 78 }));
}, "File.cs", "Test.dll", "Test.js");
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"public class C1 { public void M() { var x = 0l; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js"),
WarningLevel = 3,
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(er.AllMessages.Select(m => m.Code), Is.EqualTo(new[] { 219 }));
}, "File.cs", "Test.dll", "Test.js");
}
开发者ID:arnauddias,项目名称:SaltarelleCompiler,代码行数:35,代码来源:DriverTests.cs
示例3: Compile
/// <param name="options">Compile options</param>
/// <param name="runInSeparateAppDomain">Should be set to true for production code, but there are issues with NUnit, so tests need to set this to false.</param>
public bool Compile(CompilerOptions options, bool runInSeparateAppDomain)
{
try {
AppDomain ad = null;
var actualOut = Console.Out;
try {
Console.SetOut(new StringWriter()); // I don't trust the third-party libs to not generate spurious random messages, so make sure that any of those messages are suppressed.
var er = new ErrorReporterWrapper(_errorReporter, actualOut);
Executor executor;
if (runInSeparateAppDomain) {
var setup = new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(typeof(Executor).Assembly.Location) };
ad = AppDomain.CreateDomain("SCTask", null, setup);
executor = (Executor)ad.CreateInstanceAndUnwrap(typeof(Executor).Assembly.FullName, typeof(Executor).FullName);
}
else {
executor = new Executor();
}
return executor.Compile(options, er);
}
finally {
if (ad != null) {
AppDomain.Unload(ad);
}
if (actualOut != null) {
Console.SetOut(actualOut);
}
}
}
catch (Exception ex) {
_errorReporter.InternalError(ex, null, TextLocation.Empty);
return false;
}
}
开发者ID:arnauddias,项目名称:SaltarelleCompiler,代码行数:37,代码来源:CompilerDriver.cs
示例4: GetAssemblyName
private static string GetAssemblyName(CompilerOptions options) {
if (options.OutputAssemblyPath != null)
return Path.GetFileNameWithoutExtension(options.OutputAssemblyPath);
else if (options.SourceFiles.Count > 0)
return Path.GetFileNameWithoutExtension(options.SourceFiles[0]);
else
return null;
}
开发者ID:chenxustu1,项目名称:SaltarelleCompiler,代码行数:8,代码来源:CompilerDriver.cs
示例5: HandleReferences
private static void HandleReferences(CompilerOptions options, string value) {
foreach (var reference in value.Split(new[] { ',' }).Select(s => s.Trim()).Where(s => s != "")) {
int i = reference.IndexOf('=');
if (i >= 0)
options.References.Add(new Reference(reference.Substring(i + 1), reference.Substring(0, i)));
else
options.References.Add(new Reference(reference));
}
}
开发者ID:pdavis68,项目名称:SaltarelleCompiler,代码行数:9,代码来源:Worker.cs
示例6: MapSettings
private static CompilerSettings MapSettings(CompilerOptions options, string outputAssemblyPath, string outputDocFilePath, IErrorReporter er) {
var allPaths = options.AdditionalLibPaths.Concat(new[] { Environment.CurrentDirectory }).ToList();
var result = new CompilerSettings {
Target = (options.HasEntryPoint ? Target.Exe : Target.Library),
Platform = Platform.AnyCPU,
TargetExt = (options.HasEntryPoint ? ".exe" : ".dll"),
MainClass = options.EntryPointClass,
VerifyClsCompliance = false,
Optimize = false,
Version = LanguageVersion.V_5,
EnhancedWarnings = false,
LoadDefaultReferences = false,
TabSize = 1,
WarningsAreErrors = options.TreatWarningsAsErrors,
FatalCounter = 100,
WarningLevel = options.WarningLevel,
Encoding = Encoding.UTF8,
DocumentationFile = !string.IsNullOrEmpty(options.DocumentationFile) ? outputDocFilePath : null,
OutputFile = outputAssemblyPath,
AssemblyName = GetAssemblyName(options),
StdLib = false,
StdLibRuntimeVersion = RuntimeVersion.v4,
StrongNameKeyContainer = options.KeyContainer,
StrongNameKeyFile = options.KeyFile,
};
result.SourceFiles.AddRange(options.SourceFiles.Select((f, i) => new SourceFile(f, f, i + 1)));
foreach (var r in options.References) {
string resolvedPath = ResolveReference(r.Filename, allPaths, er);
if (r.Alias == null) {
if (!result.AssemblyReferences.Contains(resolvedPath))
result.AssemblyReferences.Add(resolvedPath);
}
else
result.AssemblyReferencesAliases.Add(Tuple.Create(r.Alias, resolvedPath));
}
foreach (var c in options.DefineConstants)
result.AddConditionalSymbol(c);
foreach (var w in options.DisabledWarnings)
result.SetIgnoreWarning(w);
foreach (var w in options.WarningsAsErrors)
result.AddWarningAsError(w);
foreach (var w in options.WarningsNotAsErrors)
result.AddWarningOnly(w);
if (options.EmbeddedResources.Count > 0)
result.Resources = options.EmbeddedResources.Select(r => new AssemblyResource(r.Filename, r.ResourceName, isPrivate: !r.IsPublic) { IsEmbeded = true }).ToList();
if (result.AssemblyReferencesAliases.Count > 0) { // NRefactory does currently not support reference aliases, this check will hopefully go away in the future.
er.Region = DomRegion.Empty;
er.Message(Messages._7998, "aliased reference");
}
return result;
}
开发者ID:ShuntaoChen,项目名称:SaltarelleCompiler,代码行数:54,代码来源:CompilerDriver.cs
示例7: CanInitializeListWithCollectionInitializer
public void CanInitializeListWithCollectionInitializer()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("Test.cs"), @"using System.Collections.Generic; public class C1 { public void M() { var l = new List<int> { 1 }; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("Test.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True, "Compilation failed with " + string.Join(Environment.NewLine, er.AllMessagesText));
}, "File1.cs", "Test.dll", "Test.js");
}
开发者ID:arnauddias,项目名称:SaltarelleCompiler,代码行数:17,代码来源:DriverTests.cs
示例8: HandleWarningsAsErrors
private static void HandleWarningsAsErrors(CompilerOptions options, string value) {
string param;
if (value != null && (value[0] == '-' || value[0] == '/')) {
var colon = value.IndexOf(':');
param = colon >= 0 ? value.Substring(colon + 1) : null;
}
else {
param = value;
}
if (param != null) {
HandleIntegerList(options.WarningsAsErrors, param, "warnaserror");
}
else {
options.TreatWarningsAsErrors = true;
}
}
开发者ID:pdavis68,项目名称:SaltarelleCompiler,代码行数:17,代码来源:Worker.cs
示例9: SimpleCompilationWorks
public void SimpleCompilationWorks() {
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File1.cs"), @"using System.Collections; public class C1 { public JsDictionary M() { return null; } }");
File.WriteAllText(Path.GetFullPath("File2.cs"), @"using System.Collections; public class C2 { public JsDictionary M() { return null; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File1.cs"), Path.GetFullPath("File2.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var driver = new CompilerDriver(new MockErrorReporter());
var result = driver.Compile(options, null);
Assert.That(result, Is.True);
Assert.That(File.Exists(Path.GetFullPath("Test.dll")), Is.True, "Assembly should be written");
Assert.That(File.Exists(Path.GetFullPath("Test.js")), Is.True, "Script should be written");
}, "File1.cs", "File2.cs", "Test.dll", "Test.js");
}
开发者ID:pdavis68,项目名称:SaltarelleCompiler,代码行数:18,代码来源:DriverTests.cs
示例10: AssemblyNameIsCorrectInTheGeneratedScript
public void AssemblyNameIsCorrectInTheGeneratedScript() {
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File1.cs"), @"using System.Collections; public class C1 { public JsDictionary M() { return null; } }");
File.WriteAllText(Path.GetFullPath("File2.cs"), @"using System.Collections; public class C2 { public JsDictionary M() { return null; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File1.cs"), Path.GetFullPath("File2.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.Assembly.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var driver = new CompilerDriver(new MockErrorReporter());
var result = driver.Compile(options);
Assert.That(result, Is.True);
var text = File.ReadAllText(Path.GetFullPath("Test.js"));
Assert.That(text.Contains("ss.initAssembly($asm, 'Test.Assembly')")); // Verify that the symbol was passed to the script compiler.
}, "File1.cs", "File2.cs", "Test.Assembly.dll", "Test.js");
}
开发者ID:chenxustu1,项目名称:SaltarelleCompiler,代码行数:18,代码来源:DriverTests.cs
示例11: CanCompileLockStatement
public void CanCompileLockStatement()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File1.cs"), @"using System.Collections.Generic; public class C1 { public void M() { lock (new object()) {} } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File1.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var driver = new CompilerDriver(new MockErrorReporter());
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(File.Exists(Path.GetFullPath("Test.dll")), Is.True, "Assembly should be written");
Assert.That(File.Exists(Path.GetFullPath("Test.js")), Is.True, "Script should be written");
}, "File1.cs", "Test.dll", "Test.js");
}
开发者ID:jack128,项目名称:SaltarelleCompiler,代码行数:18,代码来源:DriverTests.cs
示例12: CompileErrorsAreReportedAndCauseFilesNotToBeGenerated
public void CompileErrorsAreReportedAndCauseFilesNotToBeGenerated() {
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"public class C1 { public void M() { var x = y; } }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js")
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, null);
Assert.That(result, Is.False);
Assert.That(er.AllMessages.Any(m => m.Severity == MessageSeverity.Error && m.Code == 103 && m.Region.FileName == Path.GetFullPath("File.cs") && m.Region.Begin == new TextLocation(1, 45) && m.Format != null && m.Args.Length == 0));
Assert.That(File.Exists(Path.GetFullPath("Test.dll")), Is.False, "Assembly should not be written");
Assert.That(File.Exists(Path.GetFullPath("Test.js")), Is.False, "Script should not be written");
}, "File.cs", "Test.dll", "Test.js");
}
开发者ID:pdavis68,项目名称:SaltarelleCompiler,代码行数:19,代码来源:DriverTests.cs
示例13: AssemblyThatCanNotBeLocatedCausesError7997
public void AssemblyThatCanNotBeLocatedCausesError7997()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"class Class1 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath), new Reference("MyNonexistentAssembly") },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("Test.dll"),
OutputScriptPath = Path.GetFullPath("Test.js"),
MinimizeScript = false,
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(er.AllMessages, Has.Count.EqualTo(1));
Assert.That(er.AllMessages.Any(m => m.Code == 7997 && (string)m.Args[0] == "MyNonexistentAssembly"));
Assert.That(result, Is.False);
Assert.That(File.Exists(Path.GetFullPath("Test.dll")), Is.False);
}, "File.cs", "Test.dll", "Test.js");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:22,代码来源:DriverTests.cs
示例14: ReadProject
private CompilerOptions ReadProject(string filename, string solutionDir = null) {
var basePath = Path.GetDirectoryName(filename);
var opts = new CompilerOptions();
string content = File.ReadAllText(filename);
content = content.Replace("$(SolutionDir)", solutionDir + "\\");
var project = XDocument.Parse(content);
var nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("msb", "http://schemas.microsoft.com/developer/msbuild/2003");
var projectReferences = project.XPathSelectElements("msb:Project/msb:ItemGroup/msb:ProjectReference", nsm)
.Select(n => n.Attribute("Include").Value).ToList()
.Select(f => Path.GetFullPath(Path.Combine(basePath, Path.GetDirectoryName(f), "bin", "Debug", Path.GetFileNameWithoutExtension(f) + ".dll"))).ToList();
opts.SourceFiles.AddRange(project.XPathSelectElements("msb:Project/msb:ItemGroup/msb:Compile", nsm).Select(item => Path.GetFullPath(Path.Combine(basePath, item.Attributes("Include").Single().Value))));
opts.References.AddRange(project.XPathSelectElements("msb:Project/msb:ItemGroup/msb:Reference/msb:HintPath", nsm).Select(item => new Reference(Path.GetFullPath(Path.Combine(basePath, item.Value)))));
opts.References.AddRange(projectReferences.Select(item => new Reference(item)));
opts.OutputAssemblyPath = Path.GetFullPath("output.dll");
opts.OutputScriptPath = Path.GetFullPath("output.js");
return opts;
}
开发者ID:pdavis68,项目名称:SaltarelleCompiler,代码行数:23,代码来源:EndToEndCompilation.cs
示例15: ErrorWritingTheOutputScriptGivesCS7951
public void ErrorWritingTheOutputScriptGivesCS7951()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"class Class1 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("MyOutputFile.dll"),
OutputScriptPath = Path.GetFullPath("MyOutputFile.js"),
DocumentationFile = Path.GetFullPath("MyOutputFile.xml"),
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
bool result;
using (File.Open(Path.GetFullPath("MyOutputFile.js"), FileMode.Create)) {
result = driver.Compile(options, false);
}
Assert.That(result, Is.False);
Assert.That(er.AllMessages.Any(m => m.Code == 7951 && m.Args.Length == 1));
}, "File.cs", "MyOutputFile.dll", "MyOutputFile.js", "MyOutputFile.xml");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:23,代码来源:DriverTests.cs
示例16: UsingAliasedReferenceCausesError7998
public void UsingAliasedReferenceCausesError7998()
{
UsingFiles(() => {
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
File.WriteAllText(Path.GetFullPath("Ref.cs"), @"public class Class1 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("Ref.cs") },
OutputAssemblyPath = Path.GetFullPath("Ref.dll"),
OutputScriptPath = Path.GetFullPath("Ref.js"),
};
bool result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(er.AllMessages, Is.Empty);
File.WriteAllText(Path.GetFullPath("Out.cs"), @"extern alias myalias; class Class2 : myalias::Class1 { public void M2() {} }");
options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath), new Reference(Path.GetFullPath("Ref.dll"), alias: "myalias") },
SourceFiles = { Path.GetFullPath("Out.cs") },
OutputAssemblyPath = Path.GetFullPath("Out.dll"),
OutputScriptPath = Path.GetFullPath("Out.js"),
};
result = driver.Compile(options, false);
Assert.That(result, Is.False);
Assert.That(er.AllMessages.Single().Code, Is.EqualTo(7998));
Assert.That(er.AllMessages.Single().Args[0], Is.EqualTo("aliased reference"));
}, "Ref.cs", "Ref.dll", "Ref.js", "Out.cs", "Out.dll", "Out.js");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:32,代码来源:DriverTests.cs
示例17: Compile
private Tuple<bool, List<Message>> Compile(string source, string baseName, params string[] references)
{
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
File.WriteAllText(Path.GetFullPath(baseName + ".cs"), source);
var options = new CompilerOptions { References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath(baseName + ".cs") },
OutputAssemblyPath = Path.GetFullPath(baseName + ".dll"),
OutputScriptPath = Path.GetFullPath(baseName + ".js"),
};
foreach (var r in references)
options.References.Add(new Reference(Path.GetFullPath(r + ".dll")));
bool result = driver.Compile(options, false);
return Tuple.Create(result, er.AllMessages);
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:17,代码来源:DriverTests.cs
示例18: TheAssemblyNameIsCorrect
public void TheAssemblyNameIsCorrect()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("File.cs"), @"class Class1 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("MyOutputAssembly.dll"),
OutputScriptPath = Path.GetFullPath("Test.js"),
DocumentationFile = Path.GetFullPath("Test.xml"),
MinimizeScript = false,
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(File.Exists(Path.GetFullPath("Test.xml")), Is.True);
string doc = File.ReadAllText(Path.GetFullPath("Test.xml"));
Assert.That(XDocument.Parse(doc).XPathSelectElement("/doc/assembly/name").Value, Is.EqualTo("MyOutputAssembly"));
var asm = AssemblyDefinition.ReadAssembly(Path.GetFullPath("MyOutputAssembly.dll"));
Assert.That(asm.Name.Name, Is.EqualTo("MyOutputAssembly"));
}, "File.cs", "MyOutputAssembly.dll", "Test.js", "Test.xml");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:25,代码来源:DriverTests.cs
示例19: TheOutputFileNamesAreTakenFromTheFirstSourceFileIfNotSpecified
public void TheOutputFileNamesAreTakenFromTheFirstSourceFileIfNotSpecified()
{
UsingFiles(() => {
File.WriteAllText(Path.GetFullPath("FirstFile.cs"), @"class C1 { public void M() {} }");
File.WriteAllText(Path.GetFullPath("SecondFile.cs"), @"class C2 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("FirstFile.cs"), Path.GetFullPath("SecondFile.cs") },
};
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
var result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(File.Exists(Path.GetFullPath("FirstFile.dll")), Is.True);
Assert.That(File.Exists(Path.GetFullPath("FirstFile.js")), Is.True);
var asm = AssemblyDefinition.ReadAssembly(Path.GetFullPath("FirstFile.dll"));
Assert.That(asm.Name.Name, Is.EqualTo("FirstFile"));
}, "FirstFile.cs", "SecondFile.cs", "FirstFile.dll", "FirstFile.js");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:21,代码来源:DriverTests.cs
示例20: SigningWorks
public void SigningWorks()
{
string key = "0702000000240000525341320004000001000100BF8CF25A8FAE18A956C58C7F0484E846B1DAF18C64DDC3C04B668894E90AFB7C796F86B2926EB59548DDF82097805AE0A981C553A639A0669B39BECD22C1026A3F8E0F90E01BF6993EA18F8E2EA60F4F1B1563FDBB9F8D501A0E0736C3ACCD6BA86B6B2002D20AE83A5E62218BC2ADA819FF0B1521E56801684FA07726EB6DAAC9DF138633A3495C1687045E1B98ECAC630F4BB278AEFF7D6276A88DFFFF02D556562579E144591166595656519A0620F272E8FE1F29DC6EAB1D14319A77EDEB479C09294F0970F1293273AA6E5A8DB32DB6C156E070672F7EEA2C1111E040FB8B992329CD8572D48D9BB256A5EE0329B69ABAFB227BBEEEF402F7383DE4EDB83947AF3B87F9ED7B2A3F3F4572F871020606778C0CEF86C77ECF6F9E8A5112A5B06FA33255A1D8AF6F2401DFA6AC3220181B1BB99D79C931B416E06926DA0E21B79DA68D3ED95CBBFE513990B3BFB4419A390206B48AC93BC397183CD608E0ECA794B66AEC94521E655559B7A098711D2FFD531BED25FF797B8320E415E99F70995777243C3940AF6672976EF37D851D93F765EC0F35FE641279F14400E227A1627CDDCCE09F6B3543681544A169DC78B6AF734AFDAF2C50015E6B932E6BD913619BA04FB5BE03428EAB072C64F7743E1E9DDDADE9DCA6A1E47C648BE01D9133F7D227FAE72337E662459B6A0CA11410FA0179F22312A534B5CABE611742A11A890B1893CD0402CE01778EDC921F0D27CBC96AEE75ECB4D4E083301A843E9716BBB0AD689FDEE275321EA915FD44F696883DAF4E3CAB3D0229283ED43FB12747";
byte[] keyBytes = Enumerable.Range(0, key.Length / 2).Select(i => Convert.ToByte(key.Substring(i * 2, 2), 16)).ToArray();
UsingFiles(() => {
var er = new MockErrorReporter();
var driver = new CompilerDriver(er);
File.WriteAllBytes(Path.GetFullPath("Key.snk"), keyBytes);
File.WriteAllText(Path.GetFullPath("File.cs"), @"public class Class1 { public void M() {} }");
var options = new CompilerOptions {
References = { new Reference(Common.MscorlibPath) },
SourceFiles = { Path.GetFullPath("File.cs") },
OutputAssemblyPath = Path.GetFullPath("File.dll"),
OutputScriptPath = Path.GetFullPath("File.js"),
KeyFile = Path.GetFullPath("Key.snk"),
};
bool result = driver.Compile(options, false);
Assert.That(result, Is.True);
Assert.That(er.AllMessages, Is.Empty);
var asm = AssemblyDefinition.ReadAssembly("File.dll");
Assert.That(asm.Name.PublicKeyToken, Is.EqualTo(new[] { 0xf5, 0xa5, 0x6d, 0x86, 0x8e, 0xa6, 0xbd, 0x2e }));
}, "Key.snk", "File.cs", "File.dll", "File.js");
}
开发者ID:JimmyJune,项目名称:SaltarelleCompiler,代码行数:27,代码来源:DriverTests.cs
注:本文中的Saltarelle.Compiler.Driver.CompilerOptions类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论