ClickOnce部署,但未部署引用的DLL文件

我在部署ClickOnce应用程序时遇到问题。 我正在使用Visual Studio 2008.我有一个未被部署的引用的DLL文件。

在项目属性 - >发布选项卡 - >应用程序文件

引用的DLL文件没有出现,所以我不能添加它。

该DLL文件不是直接在我的代码中使用,但是它被另一个我引用的DLL文件使用。

有没有办法我可以手动编辑一些东西来确保DLL文件被复制过来?

值得一提的是,DLL文件是DevExpress的第三方DLL文件:DevExpress.XtraPrinting.dll。 我认为它可能是由其他DevExpress DLL文件之一作为插件加载的。


我很清楚这个问题,并且有几件事需要解决:

  • 在您的项目中添加对DevExpress.XtraPrinting.dll dll的引用。
  • 在参考部分将DevExpress.XtraPrinting.dll设置为Copy Local = true(这似乎有助于VS记住dll更多)
  • 强制VS知道你需要这个DLL,你将需要使用它。 这可以通过实例化一个ExportOptions实例或一些类似的对象来完成。 例如

    var options = new ExportOptions(); options.Html.Title =“一些文字”;

  • 现在确保在Publish选项卡的ApplicationFiles部分强制设置Publish Status为“Include”。

  • 这应该可以解决你的问题。


    感谢您的回复 - 但是我发现手动编辑csproj文件对我很有帮助。 对于有这个问题的其他人,你可能需要添加你想部署的你的dll,像这样:

    <PublishFile Include="DevExpress.XtraPrinting.v9.3">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Include</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
    

    同时确保你在参考部分有这个:

    <Reference Include="DevExpress.XtraPrinting.v9.3, Version=9.3.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..SomePathDevExpress.XtraPrinting.v9.3.dll</HintPath>
    </Reference>
    

    我还想指出,RobinDotNet的解决方案也可以。


    将第三方DLL文件添加到项目中(右键单击项目,添加现有项目...)。 将“构建操作”设置为“无”,并将“复制到输出目录”设置为“不要复制”。

    删除您对该DLL文件的引用。 重新添加引用,然后浏览到项目中的该DLL文件并选择它。

    在参考上,将“复制本地”设置为“真”。

    现在它应该显示在应用程序文件中,因为您的代码引用了本地副本,并将其设置为部署它。

    请注意,这不适用于所有组件; 一些必须安装在GAC中。 但它是免费的尝试。 如果必须在GAC中,它会在您尝试安装时告诉您。

    链接地址: http://www.djcxy.com/p/65987.html

    上一篇: ClickOnce deployment, but a referenced DLL file is not being deployed

    下一篇: ClickOnce & References