ile nasıl bulunur Visual Studio için özel bir araç geliştiriyorum. Araç dosyaya atandığında, dosyanın değiştiği anda bu dosyanın adını alıyorum ve projede bazı değişiklikler yapmam gerekiyor. Alınan dosya adıyla bir ProjectItem bulmalıyım. Çözümün her projesinde tüm proje kalemlerini sıralayan tek bir çözüm buldum. Ama büyük bir çözüm gibi görünüyor. Bir proje öğesi numaralandırma olmadan dosya adına göre bir yolu var mı?ProjectItem dosya adı
Bu IVsSingleFileGenerator
public int Generate(string sourceFilePath, string sourceFileContent, string defaultNamespace, IntPtr[] outputFileContents, out uint output, IVsGeneratorProgress generateProgress)
{
var dte = (EnvDTE.DTE)Package.GetGlobalService(typeof(EnvDTE.DTE));
ProjectItem projectItem = null;
foreach (Project project in dte.Solution.Projects)
{
foreach (ProjectItem item in project.ProjectItems)
{
var path = item.Properties.Item("FullPath").Value;
if (sourceFilePath.Equals(path, StringComparison.OrdinalIgnoreCase))
{
projectItem = item;
}
}
}
output = 0;
outputFileContents[0] = IntPtr.Zero;
return Microsoft.VisualStudio.VSConstants.S_OK;
}
Açık değil: sln dosyasını ayrıştırıyor ve sonra her csproj'u ayrışıyor musunuz? Yoksa dosya sistemini mi tarıyorsunuz? –
VisualStudio tarafından sağlanan DTE nesnesini arıyorum. –
Bu işe yarayacak gibi görünüyor: https://stackoverflow.com/a/38876595/509584 –