NuGet 包,无需将文件添加到 Visual Studio 项目

发布于 2024-11-05 05:37:19 字数 217 浏览 3 评论 0原文

我刚刚开始使用 NuGet,并试图理解它。我可能正在尝试使用 NuGet 来做一些它不适合的事情,但我希望有人能给我一些提示。

我的问题:我正在尝试创建一个包含不同文件的包。文件有不同的类型(图像、文本文件等)。我希望该包能够工作,以便将文件添加到我的应用程序根目录中,但不包含在我的 Visual Studio 项目中。我已经尝试过,但文件总是添加到项目中。有办法解决这个问题吗?

谢谢

I am just getting started with NuGet and trying to get my head around it. I may be trying to use NuGet for someting it isn't intended for, but I was hoping someone might give me some hints.

My issue: I am trying to create a package with different files. The files is of different type (images, text files, etc.). I want the package to work, so that the files get added to my application root, but isn't included in my visual studio project. I have tried it, but the files is always added to the project. Is there a way around this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

于我来说 2024-11-12 05:37:19

今天还没有对此的直接支持。安装包后,您放入内容文件夹中的任何内容都会添加到您的项目中。

但是,您应该能够使用 install.ps1 脚本实现此结果,例如:

  • 将您想要最终出现在 Web 根目录中的所有文件放入包中的某个文件夹中
  • 使用 install.ps1 中的 PowerShell 复制该文件夹中的所有内容进入你的网络根目录,这可能只是一句俏皮话。

There is no direct support for this today. Anything that you put in the content folder gets added to your project when the package is installed.

However, you should be able to achieve this result using an install.ps1 script, e.g.:

  • Put all the files you want to end up in your web root in some folder in the package
  • Use PowerShell in install.ps1 to copy everything in that folder into your web root, which is probably just a one-liner.
手心的温暖 2024-11-12 05:37:19

您可以将文件放在 nuget 数据包中的另一个文件夹(不是内容)中,并将 .targets 文件添加到 nuget 数据包中,在构建时复制文件。

MyProject.nuget 文件:

...
<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net45"/>
    <file src="C:\MyResourceFolder\**" target="resources"/>
    <file src="MyProject.targets" target="build"/>
  </files>
</package>

MyProject.targets 文件:

<?xml version="1.0"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)\..\resources\**">
      <Link>\Recources\%(RecursiveDir)\%(Filename)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
   </None>
  </ItemGroup>
</Project>

当您构建最终应用程序时,文件将被复制到构建目标文件夹。

You can put your files in another folder (not content) in the nuget packet and add a .targets file to your nuget packet copy the files at build time.

MyProject.nuget file:

...
<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net45"/>
    <file src="C:\MyResourceFolder\**" target="resources"/>
    <file src="MyProject.targets" target="build"/>
  </files>
</package>

MyProject.targets file:

<?xml version="1.0"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)\..\resources\**">
      <Link>\Recources\%(RecursiveDir)\%(Filename)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
   </None>
  </ItemGroup>
</Project>

When you build your final Application the files will be copy'ed to the build target folder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文