private void CreateTargetFile(FilePath sourcePath, FilePath targetPath) { // Create the target file. var targetFile = Substitute.For <IFile>(); targetFile.Exists.Returns(true); targetFile.Path.Returns(targetPath); // Add the file to lookup data structures. SourceFilePaths.Add(sourcePath); TargetFiles.Add(targetFile); TargetFilePaths.Add(targetPath); }
public CompilerResults Compile() { AddCS(); ParseFilesForCompilerOptions(); if (SourceFilePaths.Count == 0) { return(null); } using (Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider provider = new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider()) { provider.Supports(GeneratorSupport.Resources); CompilerResults results = provider.CompileAssemblyFromFile(Options, SourceFilePaths.ToArray()); if (!results.Errors.HasErrors) { CompiledAssembly = results.CompiledAssembly; } results.TempFiles.Delete(); return(results); } }
private void AddCS() { if (FileStructure == FileStructureType.Folder) { string[] strArray = Directory.GetFiles(SourcePath, "*.cs", SearchOption.AllDirectories); foreach (string s in strArray) { SourceFilePaths.Add(s); } string[] strArray2 = Directory.GetFiles(SourcePath, "*.resx", SearchOption.AllDirectories); foreach (string s in strArray2) { AddRESX(s); } } else { SourceFilePaths.Add(SourcePath); } }
bool UserProvidedFileExists(string markupItemPath, CodeDomProvider codeDomProvider) { string desiredSourceFilePath = Path.ChangeExtension(markupItemPath, "xaml." + codeDomProvider.FileExtension); return(SourceFilePaths.Contains(desiredSourceFilePath)); }
private static bool ReadArguments() { string[] arguments = Environment.GetCommandLineArgs(); if (arguments.Length <= 1) { PrintHelp = true; return(true); } for (int argumentIndex = 1; argumentIndex < arguments.Length; argumentIndex++) { if (arguments[argumentIndex].Equals("-?", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/?", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("-h", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/h", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("-help", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/help", StringComparison.OrdinalIgnoreCase)) { PrintHelp = true; continue; } if (arguments[argumentIndex].Equals("-b", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/b", StringComparison.OrdinalIgnoreCase)) { if (argumentIndex != arguments.Length - 1) { BasePackageFilePath = arguments[argumentIndex + 1]; argumentIndex++; continue; } } if (arguments[argumentIndex].Equals("-t", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/t", StringComparison.OrdinalIgnoreCase)) { if (argumentIndex != arguments.Length - 1) { TargetPackageFilePaths.Add(arguments[argumentIndex + 1]); argumentIndex++; continue; } } if (arguments[argumentIndex].Equals("-s", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/s", StringComparison.OrdinalIgnoreCase)) { if (argumentIndex != arguments.Length - 1) { SourceFilePaths.AddRange(arguments[argumentIndex + 1].Split(';')); argumentIndex++; continue; } } if (arguments[argumentIndex].Equals("-r", StringComparison.OrdinalIgnoreCase) || arguments[argumentIndex].Equals("/r", StringComparison.OrdinalIgnoreCase)) { if (argumentIndex != arguments.Length - 1) { RemoveFileNames.AddRange(arguments[argumentIndex + 1].Split(';')); argumentIndex++; continue; } } } try { if (BasePackageFilePath != null) { BasePackageFilePath = Path.GetFullPath(BasePackageFilePath); } } catch (Exception e) { throw new Exception("Failed to parse argument '-b'", e); } try { for (int targetPackageFilePathIndex = 0; targetPackageFilePathIndex < TargetPackageFilePaths.Count; targetPackageFilePathIndex++) { TargetPackageFilePaths[targetPackageFilePathIndex] = Path.GetFullPath(TargetPackageFilePaths[targetPackageFilePathIndex]); new FileInfo(TargetPackageFilePaths[targetPackageFilePathIndex]); } } catch (Exception e) { throw new Exception("Failed to parse argument '-t'", e); } try { for (int sourceFilePathIndex = 0; sourceFilePathIndex < SourceFilePaths.Count; sourceFilePathIndex++) { SourceFilePaths[sourceFilePathIndex] = Path.GetFullPath(SourceFilePaths[sourceFilePathIndex]); FileInfo sourceFileInfo = new FileInfo(SourceFilePaths[sourceFilePathIndex]); if (!sourceFileInfo.Exists) { Console.Error.WriteLine("Cannot find source file '" + sourceFileInfo.FullName + "'."); return(false); } } } catch (Exception e) { throw new Exception("Failed to parse argument '-s'", e); } return(true); }