Msbuild 向XYZ.csproj.FileListAbsolute.txt添加文件的正确方法是什么?
我的构建代码在bin文件夹中创建了一个额外的文件。我想在溶液清洗后再清洗。但是,文件名由项目的AssemblyName属性确定。因此,如果更改了此属性(很少见,但会发生),则清除旧文件的唯一方法是将其写入XYZ.csproj.FileListAbsolute.txt 每当我创建文件时,我是只写XYZ.csproj.FileListAbsolute.txt呢,还是有更好的方法呢?好的,我找到了 只需将文件添加到Msbuild 向XYZ.csproj.FileListAbsolute.txt添加文件的正确方法是什么?,msbuild,Msbuild,我的构建代码在bin文件夹中创建了一个额外的文件。我想在溶液清洗后再清洗。但是,文件名由项目的AssemblyName属性确定。因此,如果更改了此属性(很少见,但会发生),则清除旧文件的唯一方法是将其写入XYZ.csproj.FileListAbsolute.txt 每当我创建文件时,我是只写XYZ.csproj.FileListAbsolute.txt呢,还是有更好的方法呢?好的,我找到了 只需将文件添加到FileWrites项目列表中,如下所示: <ItemGroup> &l
FileWrites
项目列表中,如下所示:
<ItemGroup>
<FileWrites Include="$(SomeFileYouWantCleanedUpOnClean)"/>
</ItemGroup>
在我的代码中,这是目标的一部分,而不是在预编译和预重建之前运行,但在全局范围中定义时,它也可以工作。清理文件的正确方法是在*.csproj文件中编写自己的生成目标。像这样:
<Target Name="MyClean" AfterTargets="Clean">
<ItemGroup>
<ToBeCleaned Include="$(SomeFileYouWantCleanedUpOnClean)"/>
</ItemGroup>
<Delete Files="@(ToBeCleaned)" />
</Target>
您永远不必修改(也不必关心)FileListAbsolute.txt文件。在我的示例中,我让它在清理后运行。但是你以前也让它跑过。这取决于您。msbuild使用此文件来处理重命名是有原因的。如果我的文件名在实现过程中发生更改,则旧文件将保留在磁盘上。