3

次のように、現在のcsprojファイルに永続化されるプロパティを追加する必要があるVisual Studio拡張機能で作業しようとしています:

    <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MyProperty Condition="$(MyProperty) == '' Or $(MyProperty) == '*Undefined*'">MyPropertyValue</MyProperty>

ENVDTE.Project インスタンスがありますが、プロジェクトに新しいプロパティを追加するための API が見つかりません。

MSBuild プロジェクトに変換し、その方法でプロパティを追加することで問題を回避できますが、その方法では、csproj ファイルが IDE の外部で変更されているというプロンプトがユーザーに表示され、再ロードするように求められます。 、私はしたくない。

ENVDTE.Project インスタンスを使用してプロパティを追加する方法、または「環境外で変更されました」プロンプトが他の方法で表示されないようにするにはどうすればよいですか?

4

1 に答える 1

2

MSBuild プロジェクトの回避策で問題を解決しました。

プロジェクト ファイルが変更されたというメッセージがユーザーに表示される原因となった問題は、ENVDTE プロジェクト オブジェクトではなく、MSBuild プロジェクト オブジェクトで .Save() を呼び出していたことです。

于 2013-03-29T16:45:50.353 に答える