Me gustaría preguntar si es posible utilizar Fody-Costura, que incorpora dependencias en el ejecutable y < a href = "https://github.com/lextm/obfuscar" rel = "noreferrer"> Ofuscar , para ofuscar, juntos.

En este momento estoy luchando porque el objetivo de msbuild en Visual Studio 2017 de Costura se ejecuta antes que el de ofuscar (que luego se queja de la falta de archivos de dependencia).

Como obfuscar no proporciona un objetivo por sí mismo, estoy usando MSBuild.Obfuscar.

¿Hay alguna manera de combinar esos dos, tal vez especificando el orden de los objetivos?

10
TheGuy 18 feb. 2018 a las 18:25

2 respuestas

La mejor respuesta

Hice un proyecto de aplicación de consola de Framework rápido y agregué Costura, MSBuild.Obfuscar y NLog. Para que Obfuscar funcionara, todo lo que tuve que hacer fue editar el archivo Obfuscar.xml para incluir el nombre real del ensamblaje:

<?xml version="1.0" encoding="utf-8"?>
<Obfuscator>
  <Var name="InPath" value="bin\Release" />
  <Var name="OutPath" value="$(InPath)\obfuscated" />
  <Var name="HidePrivateApi" value="true" />
  <!-- was: file="$(InPath)\"  -->
  <Module file="$(InPath)\ConsoleApp1.exe" />
</Obfuscator>

Esto construido para mí muy bien. El ensamblado resultante tenía mi código ofuscado y también incluía NLog como recurso. Si está viendo resultados diferentes, entonces tal vez tenga que ver con los otros paquetes NuGet específicos que incluye su solución.

2
asherber 6 mar. 2018 a las 03:58

Pude reproducir el error. Usé la respuesta de asherber, pero tan pronto como cambié la compilación a la versión, ya no funcionó.
("No se puede resolver la dependencia: MahApps.Metro")

Para que se compile con éxito incluso en el lanzamiento, tuve que copiar el MahApps.Metro.dll referenciado en la carpeta de lanzamiento.
Si lo instaló desde NuGet, puede encontrar el .dll en la carpeta de paquetes en la carpeta de su proyecto.

0
Skelvir 14 mar. 2018 a las 13:45