Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将编译时创建的资源链接到类库_C#_Visual Studio_Class Library - Fatal编程技术网

C# 将编译时创建的资源链接到类库

C# 将编译时创建的资源链接到类库,c#,visual-studio,class-library,C#,Visual Studio,Class Library,我使用的是Visual Studio Community 2017,我的项目是用C#编写的 项目设置: 假设我有一个类库项目,叫做(a) 我还有另一个项目,它创建了一个可执行文件,叫做(B) 在VisualStudio中(B)在(a)上有一个引用。库(A)的dll自动复制到(B)的输出目录 问题: 类库(A)需要一些附加文件,这些文件是在项目编译时创建的 (因此我不能将它们作为资源添加到visual studio,并将它们设置为“更新时复制”) 项目(A)设置了一个预构建命令来创建这些资源。

我使用的是Visual Studio Community 2017,我的项目是用C#编写的

项目设置: 假设我有一个类库项目,叫做(a)

我还有另一个项目,它创建了一个可执行文件,叫做(B)

在VisualStudio中(B)在(a)上有一个引用。库(A)的dll自动复制到(B)的输出目录


问题: 类库(A)需要一些附加文件,这些文件是在项目编译时创建的

(因此我不能将它们作为资源添加到visual studio,并将它们设置为“更新时复制”)

项目(A)设置了一个预构建命令来创建这些资源。 此命令调用内容处理器来处理一组与库相关的资产。 我希望这些已处理的资产文件链接到我的库(A)。 因此,如果另一个项目引用(A),我希望这些资产文件也被复制过来

将已处理的资产复制到(A)的输出目录显然没有奏效。

我的实际问题是: 如何让Visual Studio也复制project(A)的编译时创建的文件
进入项目(B)的输出目录?

我知道一个小时后回答我自己的问题看起来有点愚蠢,但是。。。 也许其他人会发现我的解决方案很有用:

正如我在第一个问题上所评论的,创建一个定制的nuget包并在本地托管它可能是一个相对简单而优雅的解决方案。我也一定会尝试一下。我想通过以下这篇博文,我或许能够做到这一点:

但是,我也想出了另一种方法,与这个问题有关: 事实证明,通过手动编辑我的类库的csproj文件,我可以定义一个包含链接内容的目录。编译项目时,将自动获取此目录中的所有文件。此目录中的所有文件都会自动复制到project(B)中。(我的编译时生成的资产也是如此)


保存最新


所以,我认为这个问题已经解决了。如果其他人对如何解决这个问题有其他想法,我想知道。

也许可以创建nuget软件包?这其实是个不错的主意。我目前正在调查此事。如果我创建类库(a)的nuget包并在项目(B)中引用该包,当我更改nuget包时,(B)是否会自动更新?否,您需要在nuget包管理器中更新它
<ItemGroup>
<Content Include="$([System.IO.Directory]::GetFiles(&quot;PathToFolderToInclude&quot;,&quot;*&quot;,SearchOption.AllDirectories))">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>