在Visual Studio C ++项目中,我可以定义自定义构建操作和相应的属性规则(请参阅MSBuild文件夹下的)。如何在C#项目中为自定义构建操作创建此类规则?在MSBuild文件夹下有一个文件
cl.xml
引用Microsoft.CSharp.CurrentVersion.targets
,CSharp.ProjectItemsSchema.xaml
和CSharp.xaml
,它们看起来与我需要的定义完全相同。使用procmon我可以看到根本没有访问这些文件。什么是定义自定义构建操作的正确方法?
为了澄清我想要完成的事情,这里有一个例子:
生成的项目文件将包含如下数据:
CSharp.BrowseObject.xaml
自定义MSBuild目标可以轻松使用此附加元数据。到目前为止,我知道该怎么做。
但是:在VC ++项目中,可以在Visual Studio提供的属性窗口中轻松编辑此元数据。 Visual Studio使用的定义来自类似于我提到的cl.xml的规则xml文件。如何在C#项目中实现这一目标?
答案 0 :(得分:0)
定义自定义构建操作的正确方法是什么?
您可以使用MSBuild Targets或imported .targets file在项目文件中定义自定义构建操作。
1.我将一个图像文件(.png)添加到项目中 对于此构建操作,您可以使用目标中的copy task将映像文件复制到项目文件夹:
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="c:\MyProject\Destination"
/>
</Target>
2.我有一个特殊的图像资源&#39;编译器&#39;转换图像(此编译器使用msbuild目标定义)
对于此构建操作,您可以导入该msbuild目标。
3.我想更改图像文件的属性。
在C#项目中,图像的属性也会保存为MSBuild项目元数据并转发到MSBuild目标。
更新
- 在VC ++项目中,可以在Visual Studio提供的属性窗口中轻松编辑此元数据。 Visual Studio使用的定义来自类似于我提到的cl.xml的规则xml文件。如何在C#项目中完成此任务?
醇>
据我所知,我们无法使自定义项目具有可在属性窗口中编辑的其他元数据。这仅适用于C ++和C ++ / CLI项目。 .NET项目(C#和Visual Basic)没有那么多可以调整的选项。您可以参考Sharing Project Properties in Visual C++了解更多详情。
希望这可以帮到你。