在Visual Studio C++項目中,我可以定義自定義構建操作和相應的屬性規則(請參閱MSBuild文件夾下的cl.xml
)。我如何在C#項目中爲自定義構建操作創建這樣的規則?在MSBuild文件夾下有一個文件Microsoft.CSharp.CurrentVersion.targets
,它參考CSharp.ProjectItemsSchema.xaml
,CSharp.xaml
和CSharp.BrowseObject.xaml
,它看起來非常像我需要的定義。使用procmon我可以看到這些文件根本不被訪問。什麼是定義自定義構建操作的正確方法?Visual Studio C#項目中的自定義構建操作屬性
爲了澄清我想在這裏完成的是一個例子:
- 我添加圖像文件(巴紐)到項目
- 我有一種特殊的圖像資源「編譯器轉換的圖像(此編譯器是使用msbuild目標定義的)
- 我想更改圖像文件的屬性(例如目標分辨率,格式等)。在C++項目中,我可以爲此打開文件屬性對話框。 這些屬性被保存爲MSBuild項目元數據並被轉發到MSBuild目標。
所得到的項目文件將包含的數據是這樣的:
<ItemGroup>
<MyImageContent Include="Image.png">
<OutputName>MyImage.png</OutputName>
<TargetResX>512</TargetResX>
<TargetResY>256</TargetResY>
</MyImageContent>
</ItemGroup>
這額外的元數據可以很容易地通過一個自定義的MSBuild目標使用。到目前爲止,我知道該怎麼做。
但是:在VC++項目中,可以在由Visual Studio提供的屬性窗口中輕鬆編輯此元數據。 Visual Studio使用的定義來自與我提到的cl.xml類似的規則xml文件。我該如何在C#項目中完成此任務?
這個問題呢?您能否讓我知道關於這個問題的最新信息? –
@ Leo-MSFT:我還沒有任何其他信息。解決此問題的唯一方法可能是寫一個VS擴展或創建一個自定義的[項目系統](https://github.com/Microsoft/VSProjectSystem)。我沒有時間來實施這些。或者您可以將C++項目添加到您的解決方案僅用於此目的。 – alerosmile