为什么Visual Studio中的ClickOnce不会部署来自依赖程序集的内容文件?

14 浏览
0 Comments

为什么Visual Studio中的ClickOnce不会部署来自依赖程序集的内容文件?

我有一个通过一键部署的智能客户端应用程序。问题是,我在依赖程序集中有一些内容文件,但在Visual Studio的发布应用程序文件对话框中却看不到这些文件。

这意味着每次部署时,我都必须将所有内容文件从应用程序生成输出目录复制到发布目录,并重新构建清单,这真的很麻烦。

为什么这些文件在Visual Studio的发布工具中看不到?

0
0 Comments

为什么Visual Studio中的ClickOnce不会部署来自依赖程序集的内容文件?

在使用Visual Studio的发布界面时,为什么无法将引用的内容文件显示出来?我找到了一个解决方法来强制发布包括这些文件。

正如这篇MSDN文章所建议的,将以下内容放入项目文件中:


  
    False
  


  
  
    
  

请注意,在某些情况下,可能需要重新启动Visual Studio(而不仅仅是重新加载项目)才能使这些更改生效。

希望能有一种使用界面来完成这个任务的方法。

我已经尝试了这个解决方案,但对我来说不可行,我使用的是VS2013 SP1。

在VS 2015上也不再起作用。文件被上传/发布,但它们不会在任何部署清单上声明,因此客户端不会下载它们。我猜想_DeploymentManifestFiles是一个内部项,不是官方支持的输出目标。

0
0 Comments

为什么ClickOnce在Visual Studio中不会部署来自依赖程序集的内容文件?

问题出现的原因:

- ClickOnce在部署应用程序时不会自动包含来自依赖程序集的内容文件。

- 即使将这些内容文件添加到输出文件夹中,它们在应用程序文件对话框中也不会显示。

解决方法:

- 使用“添加为链接”功能将内容文件添加到项目中。

- 创建一个后期编译事件,将内容文件复制到主输出文件夹中。

- 对于Crystal Report文件(扩展名为.rpt),需要将其添加为链接并将其类型设置为“Content”。

以上是从一个Stack Overflow帖子中整理出的问题及其解决方法。

0
0 Comments

为什么Visual Studio中的ClickOnce不会部署依赖程序集中的内容文件?

这个问题的出现原因是,ClickOnce在部署应用程序时并不自动包含依赖程序集中的内容文件。由于这个原因,开发者需要采取额外的步骤来确保这些文件被正确部署。

解决方法是在项目的csproj文件中添加以下代码段:


    

这将使Visual Studio自动将指定文件夹中的所有.rpt文件视为解决方案的一部分。如果想要包括所有文件,可以使用`*.*`通配符。这在有一个容器文件夹的情况下更有意义,例如`bin\MyDeployables\**\*.*`。

我们还可以使用类似的方法来使用Cassette MSBuild在发布时合并和压缩JS文件,并通过内置的VS发布工具发布创建的文件。

需要注意的是,由于否则这些文件将被放在"Bin"子目录中,可能需要在项目文件中为生成的PublishFile元素设置TargetPath。在Visual Studio 2013中,这将把文件复制到`app.publish\Bin\Release\My Deployables\filename.ext`,而实际上希望将它们复制到`app.publish\My Deployables\filename.ext`。

有用户询问是否有办法解决"app.publish\My Deployables\filename.ext"的问题,并且是否有办法模拟一个最终的输出文件夹。如果没有的话,用户只能更改代码以在bin\release目录中搜索文件,这样虽然有些混乱并且不理想,但目前在搜索了3个小时后还没有找到解决方法。

尽管这种方法可能有效,但在项目中引用生成输出(bin)似乎是一个非常不好的主意。

0