public void Test_ManifestResourceName_CompiledResource_DynamicPrefix() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); cscTask.CallStack = cscTask.Project.RootTargetCallStack; ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.DynamicPrefix = true; // holds the path to the resource file string resourceFile = null; // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.resources"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual("ResourceFile.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.en-US.resources"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual("ResourceFile.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.resources"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual("SubDir" + "." + "ResourceFile.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.resources"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual("SubDir" + "." + "ResourceFile.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno.en-US.resources"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual("SubDir" + "." + "ResourceFile.en-US.dunno.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); }
private string GetManifestResourceNameCSharp(ConfigurationSettings configSetting, string dependentFile) { // defer to the resource management code in CscTask CscTask csc = new CscTask(); csc.Project = _solutionTask.Project; csc.CallStack = _solutionTask.CallStack; csc.NamespaceManager = _solutionTask.NamespaceManager; csc.OutputFile = new FileInfo(FileUtils.CombinePaths(configSetting.OutputDir.FullName, Project.ProjectSettings.OutputFileName)); // set-up resource fileset ResourceFileSet resources = new ResourceFileSet(); resources.Project = _solutionTask.Project; resources.CallStack = _solutionTask.CallStack; resources.NamespaceManager = _solutionTask.NamespaceManager; resources.Parent = csc; resources.BaseDirectory = new DirectoryInfo(Path.GetDirectoryName(Project.ProjectPath)); resources.Prefix = Project.ProjectSettings.RootNamespace; resources.DynamicPrefix = true; // bug #1042917: use logical location of resource file to determine // manifest resource name return(csc.GetManifestResourceName(resources, InputFile.FullName, LogicalFile.FullName, dependentFile)); }
private void CompileExe(string code, FileInfo outputFile, string[] resourcePaths) { FileInfo exeSourceFile = new FileInfo(Path.GetTempFileName() + ".cs"); using (StreamWriter writer = exeSourceFile.CreateText()) { writer.WriteLine(code); writer.Close(); } Log(Level.Debug, string.Format("compiling nunit-console at '{0}' to '{1}'", exeSourceFile.FullName, outputFile.FullName)); CscTask csc = new CscTask(); csc.Parent = this; csc.Project = Project; csc.NamespaceManager = NamespaceManager; csc.InitializeTaskConfiguration(); csc.OutputFile = outputFile; csc.OutputTarget = "exe"; csc.Debug = false; csc.Optimize = true; csc.Sources = new FileSet(); csc.Sources.Includes.Add(exeSourceFile.FullName); csc.References = new AssemblyFileSet(); csc.References.Includes.Add(ResolveAssemblyLocation("nunit-console-runner", resourcePaths).FullName); csc.Execute(); }
public void Test_ManifestResourceName_Resx_StandAlone_Prefix() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.Prefix = "TestNamespace"; resources.DynamicPrefix = false; // holds the path to the resource file string resourceFile = null; // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual(resources.Prefix + "." + "ResourceFile.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual(resources.Prefix + "." + "ResourceFile.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual(resources.Prefix + "." + "ResourceFile.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual(resources.Prefix + "." + "ResourceFile.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno.en-US.resx"); // create resource file CreateTempFile(resourceFile); // assert manifest resource name Assert.AreEqual(resources.Prefix + "." + "ResourceFile.en-US.dunno.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); }
/// <summary> /// Parses the input, ensuring the class name is found /// </summary> public void VerifyFindClassname(string input, string expectedClassname) { CscTask cscTask = new CscTask(); StringReader reader = new StringReader(input); CompilerBase.ResourceLinkage linkage = cscTask.PerformSearchForResourceLinkage(reader); Assert.IsNotNull(linkage, "no resourcelinkage found for " + input); Assert.AreEqual(expectedClassname, linkage.ClassName); }
public void Test_ManifestResourceName_Resx_DynamicPrefix() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.DynamicPrefix = true; PerformDependentResxTests(cscTask, resources); }
public void Test_ManifestResourceName_NonExistingResource() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.DynamicPrefix = true; cscTask.GetManifestResourceName(resources, "I_dont_exist.txt"); }
public void Test_ManifestResourceName_Resx() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); cscTask.CallStack = cscTask.Project.RootTargetCallStack; ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.DynamicPrefix = false; PerformDependentResxTests(cscTask, resources); }
public void Test_ManifestResourceName_Resx_Prefix() { CscTask cscTask = new CscTask(); cscTask.Project = CreateEmptyProject(); ResourceFileSet resources = new ResourceFileSet(); resources.BaseDirectory = TempDirectory; resources.Prefix = "TestNamespace"; resources.DynamicPrefix = false; // prefix should be ignored for resx files PerformDependentResxTests(cscTask, resources); }
protected void RunCscTask() { CscTask csc = new CscTask(); this.CopyTo(csc); if (this.Project.PlatformName == "unix") { // on Windows this is csc, but on Mono on Linux or Mac we need mcs csc.ExeName = "mcs"; } XmlDocument doc = new XmlDocument(); doc.Load(FCSProjFile); XmlNode propertyGroup = doc.DocumentElement.FirstChild; Dictionary <string, string> mainProperties = new Dictionary <string, string>(); foreach (XmlNode propNode in propertyGroup.ChildNodes) { mainProperties.Add(propNode.Name, propNode.InnerText); } string OutputFile = Path.GetFullPath(Path.GetDirectoryName(FCSProjFile) + "/" + mainProperties["OutputPath"].Replace("\\", "/")); OutputFile += "/" + mainProperties["AssemblyName"]; if (mainProperties["OutputType"].ToLower() == "library") { OutputFile += ".dll"; } else { OutputFile += ".exe"; } csc.OutputFile = new FileInfo(OutputFile); csc.DocFile = new FileInfo(mainProperties["DocumentationFile"]); csc.OutputTarget = mainProperties["OutputType"]; csc.Define = "DEBUGMODE"; String FrameworkDLLPath = Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(System.Type)).Location); foreach (XmlNode ProjectNodeChild in doc.DocumentElement) { if (ProjectNodeChild.Name == "ItemGroup") { foreach (XmlNode ItemNode in ProjectNodeChild) { if (ItemNode.Name == "Reference") { if (ItemNode.HasChildNodes && (ItemNode.ChildNodes[0].Name == "HintPath")) { csc.References.AsIs.Add(ItemNode.ChildNodes[0].InnerText); } else { // .net dlls csc.References.AsIs.Add( FrameworkDLLPath + Path.DirectorySeparatorChar + ItemNode.Attributes["Include"].Value + ".dll"); } } else if (ItemNode.Name == "ProjectReference") { string ReferencedProjectName = ItemNode.ChildNodes[1].InnerText; csc.References.AsIs.Add( Path.GetDirectoryName(OutputFile) + Path.DirectorySeparatorChar + ReferencedProjectName + ".dll"); } else if (ItemNode.Name == "Compile") { csc.Sources.AsIs.Add(Path.GetDirectoryName(FCSProjFile) + Path.DirectorySeparatorChar + ItemNode.Attributes["Include"].Value); } else if (ItemNode.Name == "EmbeddedResource") { ResourceFileSet fs = new ResourceFileSet(); fs.AsIs.Add(ItemNode.Attributes["Include"].Value); csc.ResourcesList.Add(fs); } } } } csc.Execute(); }
private void PerformDependentResxTests(CscTask cscTask, ResourceFileSet resources) { // holds the path to the resource file string resourceFile = null; // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCodeWithNamespace, Path.Combine( resources.BaseDirectory.FullName, "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("ResourceTest.HelloWorld.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCode, Path.Combine( resources.BaseDirectory.FullName, "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("HelloWorld.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCodeWithNamespace, Path.Combine( resources.BaseDirectory.FullName, "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("ResourceTest.HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCode, Path.Combine( resources.BaseDirectory.FullName, "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCodeWithNamespace, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("ResourceTest.HelloWorld.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCode, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("HelloWorld.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCodeWithNamespace, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("ResourceTest.HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCode, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCodeWithNamespace, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("ResourceTest.HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); // initialize resource file resourceFile = Path.Combine(resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno.en-US.resx"); // create resource file CreateTempFile(resourceFile); // create dependent file TempFile.CreateWithContents(_sourceCode, Path.Combine( resources.BaseDirectory.FullName, "SubDir" + Path.DirectorySeparatorChar + "ResourceFile.en-US.dunno." + cscTask.Extension)); // assert manifest resource name Assert.AreEqual("HelloWorld.en-US.resources", cscTask.GetManifestResourceName(resources, resourceFile)); }