{"id":205,"date":"2011-03-13T23:31:26","date_gmt":"2011-03-14T05:31:26","guid":{"rendered":"http:\/\/sergiob.org\/wordpress\/?p=205"},"modified":"2011-03-13T23:31:26","modified_gmt":"2011-03-14T05:31:26","slug":"como-utilizar-dlls-externos-en-un-programa-de-c","status":"publish","type":"post","link":"https:\/\/blog.sergiob.org\/?p=205","title":{"rendered":"C\u00f3mo utilizar DLLs externos en un programa de C#"},"content":{"rendered":"<p>&#8230;Despu\u00e9s de la catarsis&#8230;<\/p>\n<p><a href=\"http:\/\/sergiob.org\/wordpress\/?p=194\">Hace poquito<\/a> escrib\u00ed acerca de mi alegr\u00eda en obtener una r\u00e1pida y eficiente soluci\u00f3n a un problema que me estaba preocupando, espec\u00edficamente de c\u00f3mo copiar de manera segura archivos utilizando C#. Me encontr\u00e9 una biblioteca que hace justamente eso, utilizando el buen y viejo SCP. En pruebas todo estaba bien, termin\u00e9 otras actualizaciones al proyecto, y como siempre, lo sub\u00ed a un servidor donde la versi\u00f3n m\u00e1s nueva es descargable por los usuarios del sistema (o en resumen: &#8220;actualic\u00e9 el servidor de actualizaciones&#8221;).<\/p>\n<p>&#8230;Y que me avisan &#8211; esto no sirve. Terriblemente apenado, revis\u00e9 inmediatamente la situaci\u00f3n (ERT: 10 mins) y descubr\u00ed que C# me mostraba un error horrible a la hora de querer actualizar:<\/p>\n<p><code>\"[...]El archivo XXXX ya existe.\"<\/code><\/p>\n<p>Mmm&#8230; huh? Pues claro que ya existe, babas. Era uno de los archivos .DLL que agregu\u00e9 para utilizar su funcionamiento. Pero&#8230; porqu\u00e9 se quejaba el instalador de ello?<\/p>\n<p>La moraleja en versi\u00f3n breve es: lo agregu\u00e9 dos veces. Primero lo agregu\u00e9 <em>como archivo<\/em> al proyecto (Proyecto | <click derecho> | Incluir recurso existente) y luego agregu\u00e9 la <em>referencia<\/em> (Referencias | <click derecho> Agregar referencia). El manifiesto se confundi\u00f3 y chill\u00f3 sin tregua.<\/p>\n<p>Lecci\u00f3n aprendida: Si vas a agregar un DLL externo, <strong>solo tienes que agregarlo como referencia<\/strong>. No es necesario agregarlo como archivo &#8211; Visual Studio se encarga de incluirlo con tu proyecto en el deployment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230;Despu\u00e9s de la catarsis&#8230; Hace poquito escrib\u00ed acerca de mi alegr\u00eda en obtener una r\u00e1pida y eficiente soluci\u00f3n a un problema que me estaba preocupando, espec\u00edficamente de c\u00f3mo copiar de manera segura archivos utilizando C#. Me encontr\u00e9 una biblioteca que hace justamente eso, utilizando el buen y viejo SCP. En pruebas todo estaba bien, termin\u00e9 &hellip; <a href=\"https:\/\/blog.sergiob.org\/?p=205\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;C\u00f3mo utilizar DLLs externos en un programa de C#&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,19],"tags":[80,105,128],"class_list":["post-205","post","type-post","status-publish","format-standard","hentry","category-c","category-dammit","category-proyectos","tag-lesiones-cerebrales-expresandose","tag-poniendose-al-dia","tag-windows"],"_links":{"self":[{"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=\/wp\/v2\/posts\/205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=205"}],"version-history":[{"count":0,"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=\/wp\/v2\/posts\/205\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sergiob.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}