我正在尝试引用LINQPad.exe,一个.NET可执行文件so that my code can make use of its wonderful .Dump() extension method。添加对exe的引用允许我在我的开发机器上使用以下代码,但它会破坏ClickOnce(“清单中的引用与下载的程序集LINQPad.exe的标识不匹配。”)。
public static string DumpString<T>(this T o)
{
var w = LINQPad.Util.CreateXhtmlWriter();
w.WriteLine(o);
return w.ToString();
}
有谁知道如何引用.exe并使用ClickOnce(或类似的简单方法)部署它?请注意,我不能只包含.exe并将其称为进程 - 我需要将其作为API引用。此外,LINQPad.exe具有assemblies inside of it,当尝试在文件上使用ILMerge时会导致问题,因此ILMerge似乎不是一个选项。
答案 0 :(得分:1)
未经LINQPad所有者的书面许可,LINQPad EULA不允许您重新发布。
您不被允许做您想做的事,因为它是非法的。
但是,网站上有权限反汇编可执行文件以满足您自己的好奇心。因此,我建议您对Dump()进行反向工程并将其作为单独的库发布到Codeplex以供所有人使用。
答案 1 :(得分:0)
不知道LinqPad,这是在黑暗中刺伤:
你可以试试这个:(没有承诺)我假设你在你的项目中引用它。
将linkqpad.exe添加到您的项目中。将构建操作设置为none,将copy-to-output-directory设置为false。
如果您有对它的引用,请删除对它的引用,将引用设置为指向您刚刚包含在项目中的文件。这样,它将引用本地副本而不是GAC中的副本。如果您没有对它的引用,请将构建操作设置为“content”,并将copy-to-output-directory设置为false。然后你在哪里调用它,在本地寻找它。
这就是你通常在本地部署第三方dll而不是在GAC中安装它的方法(适用于DirectX,但不适用于Infragistics)。我不知道它是否适用于exe ...
RobinDotNet