2010-12-03 12 views
2

Ich habe einen Visual Studio-Projekt-Assistenten, der versucht, ein VC# -Projekt zu konfigurieren, um die FullPath-Eigenschaft für ausgewählte Dateien aus der Vorlage zu überschreiben.Problem mit EnvDTE.Property.set_Value zum Festlegen von ProjectItem FullPath-Eigenschaft

Der folgende Code wird aus der Funktion verwendet

public void ProjectFinishedGenerating (Projekt Projekt)

string path = "some file name"; 
project.ProjectItems.Item("some file").Properties.Item("FullPath").Value = path; 

System.Reflection.TargetParameterCountException: Ungültige Anzahl von Parametern. (Ausnahme von HRESULT: 0x8002000E (DISP_E_BADPARAMCOUNT)) bei EnvDTE.Property.set_Value (Object lppvReturn)

Ich weiß, dass ich ein gültiges ProjectItem Objekt habe, weil ich den ursprünglichen Wert anzeigen kann.

+0

gleiche Problem mit einem Visual Having Studio Makro –

Antwort

1

Ich denke, das Problem ist, dass die FullPath-Eigenschaft schreibgeschützt ist. Sie können dies herausfinden, indem Sie sich die Definition in MSDN anschauen - http://msdn.microsoft.com/en-us/library/vslangproj.fileproperties.fullpath.aspx - es ist nur ein Getter definiert.

Um set_Value aufzurufen, müssen Sie eine Eigenschaft aktualisieren, die über einen öffentlichen Setter verfügt. Nach den Eigenschaften der Schnittstelle FileProperties dokumentiert, sind die einzigen einstellbaren Eigenschaften: