- 打开项目目录下.csproj文件
- 替换: </Project>,为下面的文件
- 粗体红色 Protect.xml 为 Dotfuscator的项目文件
- 粗体红色 bin\publish\App.exe 为混淆后的文件位置,复制输出操作不能放在混淆中进行
- 粗体红色 App.exe 只有是项目名的文件,其它文件发布时不会打包到ClickOnce
<PropertyGroup>
<XenocodeLocation>"CMD.exe"</XenocodeLocation>
<!--混淆操作必须要放在这里, 否则被混淆的.exe .dll时会引发错误,放在这里就不会出错-->
<PostBuildEvent>
if $(ConfigurationName)==Release "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe" "Protect.xml"
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
<Target Name="BeforeBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<CreateProperty Value="true">
<Output TaskParameter="Value" PropertyName="Obfuscate" />
</CreateProperty>
</Target>
<Target Name="AfterCompile" Condition=" '$(Obfuscate)' != '' ">
<!--复制到发布目录 复制操作放在这里,不然复制的文件就不正确-->
<Copy SourceFiles="$(ProjectDir)bin\publish\App.exe" DestinationFiles="$(IntermediateOutputPath)App.exe" />
</Target>
</Project>