我目前正在尝试使用Visual Studio 2010"发布"和MSDeploy的功能来处理我的网络部署需求,但有关于定制取决于我的构建配置包碰到路障.
我开发一个32位的环境中,但需要对64位环境中创建一个发布包,因此在"释放"的配置我有一个后生成事件那份第三方的64位版本的DLL注入的bin目录覆盖32位版本.当我使用"发布"功能,即使正确的64位DLL被复制到bin目录下,它不会包括在包中.
有没有办法让'Publish'包含在post build事件期间复制到bin目录中的文件?
asp.net build-process publishing visual-studio-2010 msdeploy
我有一个C#项目说MyProject.csproj位于"C:\ Projects\MyProject \".我也有我想复制到这个项目的输出目录中的文件.但是,文件位于"C:\ MyContentFiles"位置,即它们不在项目锥内.该目录也有子目录.目录的内容不受管理.因此,我必须包括其下的所有内容.
当我在项目中将它们包含为"内容"时,它们会被复制,但目录结构会丢失.我做了这样的事情: -
<Content Include="..\..\MyContentFiles\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Run Code Online (Sandbox Code Playgroud)
如何将这些文件/目录递归复制到项目的输出目录中并保留目录结构?
有没有办法设置visual studio发布所有pdf文件?
我知道您可以使用Build Action"Content"属性在项目中设置每个单独的pdf文件.
但这意味着对我当前的项目做同样的事情100次,是否有办法改变全局设置来做同样的事情?
我有一个简单的WinForms应用程序,我使用ClickOnce在内部部署.主应用程序有一个依赖程序集,该程序集在构建属性中有一些标记为"内容"和"始终复制"的xml模板文件,但如果我进入项目属性,它们不会显示在应用程序文件列表中 - >发布 - >应用程序文件对话框.
任何人都知道如何部署这些属于依赖程序集的Xml文件.
@ codeConcussion-谢谢,这很有效.最后,我使用Add Existing File添加了xml文件并选择了"Add as Link",它完成了同样的事情.
将 Clickonce 与 VS 2010 和 .NET Framework Client profile 3.5 一起使用,我有几个文件夹,其中包含运行时所需的应用程序级 XML 和/或文本文件。
这些文件夹位于要使用它们的同一项目中。
这些文件在编译时被标记为“始终复制”。构建动作是“内容”。
在我的开发计算机上,文件实际上被复制到./Bin/Release/myFileFolder/xxxxx中,一切都很好。
在用户的计算机上,安装运行良好,但当程序需要时,某些文件在运行时报告丢失。
我错过了什么吗?选项列表中是否隐藏了任何文件特定选项?
请帮助!和.NET框架3.5
我使用我在这个问题中找到的解决方案来定制我的项目:
为什么Visual Studio中的ClickOnce不从依赖程序集部署内容文件?
<ItemGroup>
<AdditionalPublishFile Include="$(OutputPath)\**\*.rpt">
<Visible>False</Visible>
</AdditionalPublishFile>
</ItemGroup>
<Target Name="BeforePublish">
<Touch Files="@(IntermediateAssembly)" />
<CreateItem Include="@(AdditionalPublishFile)" AdditionalMetadata="TargetPath=%(RecursiveDir)%(Filename)%(extension);IsDataFile=false">
<Output TaskParameter="Include" ItemName="_DeploymentManifestFiles" />
</CreateItem>
</Target>
Run Code Online (Sandbox Code Playgroud)
它在VS 2010中运行良好,直到我升级到VS 2012,其他文件未包含在应用程序清单中!因此,当用户安装应用程序时,应用程序主文件夹中缺少所提到的文件.
VS 2012有什么变化?或者更改是在MSBuild中?
编辑:
我提到了最初的问题,从我得到了这个想法,基本上我使用依赖注入来加载一些程序集,这意味着我的项目和程序集之间没有硬引用,所以点击一次部署不会考虑那些程序集,它迫使我将它们添加到项目中,或者使用上面提到的解决方案,我选择了上面提到的解决方案,因为它是不可见且容易的.
但是在迁移到VS 2012后它被打破了.
msbuild clickonce publish visual-studio-2010 visual-studio-2012
我有一个ASP.NET Web应用程序,它包含多个ASP.NET项目(除了多个类库).显然,其中一个项目是根项目,而其余项目是子项目(此处解释了此应用程序结构的详细概念).每个子/子项目都有自己的目录,它们都位于根文件夹下名为"Modules"的目录中.由于IIS可以处理每个应用程序的一个项目,因此所有子项目都将被视为常规目录(运行时).因此,我将每个子项目的构建输出路径修改为" ..\..\bin\"根文件夹文件夹.这样,我就可以正确设置所有内容.从Visual Studio的角度来看,我可以在一个解决方案下拥有不同的项目.从IIS的角度来看,我有一个带有一个 bin文件夹和一个 Web.Config文件的项目.现在它发布了.如果我发布根项目(通过右键单击项目节点 - >发布),则发布的输出将只是没有"Modules"文件夹的项目.生成的bin文件夹也将错过子项目输出dll.这是预期的.所以我认为解决这个问题的显而易见的方法是发布我的所有Web项目(不仅是根目录),记住我的子项目发布路径需要是根项目的发布路径中的"Modules"文件夹.除了一个基本问题外,所有这些都很有效.事实证明,每个已发布的子项目都有自己的bin文件夹,因此根bin文件夹不包含子项目的输出DLL.所以我想,虽然Visual Studio允许我按照我想要的方式指定每个项目的输出路径(正如我提到的那样我将其设置为" ..\..\bin\"),ClickOnce发布不尊重它,只是为每个子项目创建一个bin文件夹.有没有办法指定ClickOnce发布过程的输出路径(bin文件夹)?如果没有,那么替代解决方案是什么?